Risoluzione dell'errore "Non hai i permessi sufficienti per accedere a questa pagina"

21 gen 2013, 20:00:33
Visualizzazioni: 14.7K
Voti: 6

Ho un'installazione Multisite con WP 3.5. Il sito principale e alcuni altri blog della rete funzionano correttamente. Tuttavia, se registro un nuovo utente e sito, quell'utente riceve l'errore "Non hai i permessi sufficienti per accedere a questa pagina" ogni volta che prova ad accedere al pannello di amministrazione del sito. Il front-end del sito funziona normalmente.

Quando controllo l'utente nell'interfaccia di Amministrazione della Rete, risulta essere amministratore di quel sito. Se aggiungo l'Amministratore della Rete al sito, posso visualizzare l'area di amministrazione.

Ho provato le soluzioni comuni come disabilitare e rimuovere tutti i plugin, attivare il tema Twenty Twelve e reinstallare il core di WordPress. Nessuna di queste funziona. Come posso risolvere?

0
Tutte le risposte alla domanda 5
3
10

Ho passato diverse ore del mio sabato alla ricerca di questo errore. Non sono riuscito a trovare da nessuna parte su internet una guida che descrivesse la mia soluzione finale. Ecco la mia soluzione.

Nel core di WP, l'errore "Non hai i permessi sufficienti per accedere a questa pagina." viene generato alla fine di /wp-admin/includes/menu.php. Un grep delle directory dei miei plugin ha anche mostrato che diversi plugin possono generare questo errore.

Crea un backup di menu.php, e sostituisci il codice all'interno del blocco if alle righe 224-227 (nella versione 3.5) con il seguente:

if ( !user_can_access_admin_page() ) {
   $a = array(
       'Pagine Senza Accesso' => $_wp_menu_nopriv,
       'Info Utente' => $current_user,
       'Ruoli' => $wp_roles->get_names(),
   );
   $s = sprintf("\n<br /><pre>%s</pre>", print_r($a, true));
   do_action('admin_page_access_denied');
   wp_die( __('Non hai i permessi sufficienti per accedere a questa pagina.'.$s) );
}

NON lasciare questo codice attivo sul tuo sito a meno che non stia attivamente debugando! Ripristina il backup di menu.php se devi allontanarti per un po'.

Prova ad accedere nuovamente all'area di amministrazione. Questa pagina di errore ti dirà alcune cose:

  1. Se ottieni un output aggiuntivo sulla tua pagina di errore, questo indica che l'errore è generato dal core di WP. Nel mio caso lo era. Se non ottieni output aggiuntivo, sai che devi iniziare a cercare il plugin che causa l'errore.
  2. Qualsiasi pagina nell'array Pagine Senza Accesso impostata su 1 non è accessibile all'utente. Nel mio caso, tutte le pagine erano impostate su 1.
  3. In Info Utente, controlla se l'utente ha i corretti ruoli e capacità. Nel mio caso, l'utente aveva un ruolo di 10 e le capacità che dovrebbe avere come amministratore.
  4. In Ruoli vedrai un elenco dei ruoli definiti per il sito. Nel mio caso, non avevo ruoli definiti. Questo era il mio problema.

Nel mio caso, ho potuto navigare nel mio database con phpMyAdmin e cercare la voce [WPDB_PREFIX]_[SITENO]_user_roles nella tabella [WPDB_PREFIX]_[SITENO]_options. Avevo cambiato il mio WPDB_PREFIX, ma qualche plugin aveva creato un ruolo utente personalizzato e lo aveva scritto con il prefisso predefinito wp_. Ho potuto copiare la voce da un sito funzionante a quello non funzionante. Non appena l'ho fatto, l'amministratore ha potuto accedere immediatamente al sito.

La mia installazione era ulteriormente complicata perché stavo usando il plugin new blog templates e il mio sito template aveva anche il database corrotto nello stesso modo.

Spero che questo sia d'aiuto.

21 gen 2013 20:00:33
Commenti

Ottima soluzione! Pensi che se avessi fatto un cerca/sostituisci sul prefetto difettoso avrebbe risolto? P.S. - dovresti mandare un sacco di rimproveri a quegli sviluppatori - o almeno un fermo richiamo :)

akTed akTed
21 gen 2013 21:33:19

Se avessi saputo fin dall'inizio qual era la causa principale del problema, sì avrei potuto farlo. Il mio problema era che dopo 2 ore del mio miglior Google-FU tutto quello che ho trovato erano variazioni del consiglio "disattiva tutti i plugin". Aggiornerò se riuscirò a identificare il colpevole.

cpilko cpilko
21 gen 2013 21:41:13

Grazie, mi è stato utile.

Alyas Alyas
20 ago 2020 21:46:01
0

Durante la migrazione da un'installazione multisite, il problema era dovuto al fatto che i ruoli sono denominati in base ai nomi delle tabelle. Quindi ho risolto il mio problema rinominando l'opzione wp_7_user_roles in wp_user_roles.

2 feb 2016 16:54:42
0

Dopo aver provato diverse soluzioni, inclusi i permessi - nulla sembrava funzionare. Alla fine ho ricontrollato la dimensione della tabella wp_usermeta in produzione rispetto a quella in locale e ho scoperto che il caricamento era stato troncato e mancavano alcuni valori. Ho svuotato la tabella e ricaricato nuovamente tutti i metadati degli utenti. WordPress ha funzionato immediatamente dopo il caricamento. - Spero che questo possa far risparmiare tempo a qualcuno.

11 nov 2014 21:54:07
1

Anch'io ho avuto problemi con questo.

Quello che volevo era dare a un utente i privilegi di Admin ma rimuovere certi menu dalla barra laterale dell'area di amministrazione.

Ho rimosso AAM perché causava problemi di permessi e ho usato invece Menu Editor Pro. Tutto funziona perfettamente.

Ovviamente, questo non è il metodo più sicuro per gestire la situazione, poiché permette comunque l'accesso alle pagine admin nascoste digitando manualmente gli URL, ma il mio cliente non saprebbe comunque come arrivarci, quindi per me va bene così.

23 nov 2014 01:44:00
Commenti

Questo non affronta realmente il problema, ma dato che hai già iniziato a condividere conoscenza, potresti voler aiutare qualcuno con una domanda più recente (visto che questa è piuttosto vecchia) :)

kaiser kaiser
23 nov 2014 02:35:57
0

Il problema dei permessi riguarda le seguenti tabelle.

Tabella [prefix]_usermeta

Le righe con la colonna meta_key dovrebbero riflettere il prefisso come segue.

[prefix]_capabilities
[prefix]_user_level

Tabella [prefix]_options

La singola riga con la colonna option_name dovrebbe riflettere il prefisso come segue.

[prefix]_user_roles
6 lug 2021 12:39:01