Ciao
Sto lavorando su un sito multilingua con i18n Drupal versione 5
Ho installato "Content Access" sulla versione 5 di Drupal.
Non ho installato il modulo ACL. Non mi è stato richiesto quando ho attivato Content Access.
Successivamente ho disinstallato il modulo (nel giro di 15 minuti)
L'effetto è che ora tutti i nuovi contenuti creati non sono accessibili dagli "anonymous user":
Il risultato è "Non sei autorizzato ad accedere a questa pagina." :-(
L'utente "anonymous user" ha l'accesso ai contenuti attivo. Quindi il blocco è in qualche modo a livello di nodo.
Ho provato a capire se è stata fatta qualche modifica nel database dal modulo per cui le nuove pagine hanno i permessi modificati.
La tabella node_access mi risulta vuota.
Non riesco a capire dove vengono memorizzate le autorizzazioni e come drupal fa a capire se un utente è autorizzato.
Un punto in cui viene fatto il controllo è in menu.inc
if (!_menu_item_is_accessible(menu_get_active_item())) {
return MENU_ACCESS_DENIED;
}
Ho provato a seguire la funzione _menu_item_is_accessible. Mi sono addentrato nella funzione menu_get_menu() ma mi sono perso nel capire come venga costruito tutto l'array $menu.
Qualche traccia l'ho trovata in node.module
function node_perm() {
$perms = array('administer content types', 'administer nodes', 'access content', 'view revisions', 'revert revisions');
foreach (node_get_types() as $type) {
if ($type->module == 'node') {
$name = check_plain($type->type);
$perms[] = 'create '. $name .' content';
$perms[] = 'edit own '. $name .' content';
$perms[] = 'edit '. $name .' content';
}
}
return $perms;
}
Se ho capito bene Drupal gestisce i permessi con una variabile $perms ma dove viene memorizzata ?
Qualcuno può aiutarmi?
Grazie
Ho trovato una soluzione l'ho trovata al link http://drupal.org/node/232446
In pratica occorre andare in admin/content/node-settings e fare click su "Riorganizza Premessi" e confermare.
L'effetto è che la tabella node_access viene correttamente riognanizzata e i contenuti bloccati tornano ad essere visibili.
Ciao