Bug WordPress 5.0.x et capacités administrateur

Je reçois plusieurs fois la même demande de réparation depuis plusieurs jours concernant un message d’erreur qui indique un titre « WordPress » Erreur » ainsi qu’un message « Désolé, vous n’avez pas l’autorisation d’accéder à cette page. » lors de la connexion au back-office WordPress.

Lors de mon analyse, à chaque fois j’ai constaté que les capacités administrateur avaient disparues, ou avaient été réduites au point de ne plus avoir les privilèges suffisants pour accéder au back-office.

J’ai développé un mini plugin qui corrige ce problème mais comme l’accès au back-office n’est pas possible, difficile de l’activer directement, il faut donc procéder autrement et passer par la modification du fichier functions.php du thème activé et y rajouter le code suivant sur une nouvelle ligne en fin de fichier :

add_action( 'init', 'admin_fix' );
function admin_fix() {
if ( !function_exists( 'populate_roles' ) ) {
require_once( ABSPATH . 'wp-admin/includes/schema.php' );
}
populate_roles();
}

Une fois ce code ajouté dans le fichier, et le fichier uploadé, il suffit d’une exécution comme une simple tentative de connexion au back-office par exemple, elle sera refusée mais le code sera exécuté et l’accès sera rétabli à la 2ème tentative.

Le code peut ensuite être retiré du fichier functions.php, ou laissé par mesure de précaution afin de ne pas risquer de perdre l’accès de nouveau.

 

34 réponses
  1. Avatar
    Cool Gars dit :

    Bonjour

    Je rencontre actuellement le même problème. Je n’arrive pas à accéder mon admin. J’ai le message « Désolé, vous n’avez pas l’autorisation d’accéder à cette page. » Via des recherches sur Google, je suis tombé fortuitement sur votre site. Seulement, je me rends compte que vous n’avez pas rendu le plugin public. Est ce un service payant ? Combien coûte t-il ?

    Répondre
  2. Avatar
    Fred dit :

    ÉNORME merci et surtout bravo pour cette solution qui a été le seule à fonctionner parmi les dizaines essayées !
    Je pense qu’à l’heure actuelle vous êtes le seul sur le web à la proposer et je me félicite d’avoir eu la patience de passer les 1ères pages de Google pour enfin trouver ce billet.
    Super top

    Répondre
  3. Avatar
    diwelus dit :

    Bravo et merci infiniment ! Après avoir cherché du côté des plugins, du thème, des capacités, etc. Je me tirais les cheveux. Il m’en reste. Mais que d’agacements… et de pression. C’est réglé. Grâce à votre précieux partage.
    Seul hic, et pas des moindres, WooCommerce est depuis invisible, alors que je suis administrateur. Et même malgré la réattributions de « capabilites » aux administrateurs grâce à l’extension Capability Manager Enhanced ( → http://wordpress.org/plugins/capability-manager-enhanced/ ), qui me permet de voir et gérer commandes et produits, il m’est encore impossible d’accéder aux réglages de WooCommerce. Avez-vous une idée de comment régler cette affaire ?
    Et avez-vous une idée de l’origine du problème que nous rencontrons ? Un thème commun ?

    Répondre
  4. Avatar
    Jérémy dit :

    Bonjour,
    Je ne met que très rarement des commentaires sur les sites, mais je ne vois pas comment ne pas faire l’effort de le faire pour quelqu’un qui m’a sauvé mon week end :)
    Depuis 11h ce matin, j’ai le fameux problème  » Désolé, vous n’avez pas l’autorisation d’accéder à cette page » dès que je me connecte à mon admin…
    Vos explications et le petit bout de code m’a redonné accès à mon administration en 30 secondes.
    Un grand merci à vous, vraiment….

    Répondre
    • Avatar
      Marketing Professionnel dit :

      Pareil que Jérémy, MERCI à Eralion d’avoir sauvé mon WE ! Trop fort :)
      La dernière fois, pour un pb identique, j’avais uploadé une version précédente de ma BDD, cela avait remarché. Avec, au passage, la perte d’articles à la publication prévue.
      Un tel bug vient-il de WP ou de la mise à jour du thème ?

      Répondre
  5. Avatar
    Anthony dit :

    Bonjour,
    Merci pour votre aide :)
    Après avoir tout vérifié (plugins, thème, capacités, rôles, prefixe de bdd, …) votre « admin_fix » a réglé le pb.
    Par contre, on ne sait pas comment ce pb est survenu ?
    Encore merci, vous avez sauvé ma journée :)

    Répondre
    • Benjamin
      Benjamin dit :

      Ravi d’avoir pu vous aider, je n’ai par contre pas réussi à en identifier l’origine encore, je n’ai plus eu de cas à analyser depuis.

      Répondre
      • Avatar
        Anthony dit :

        Bonjour,
        Ça me refait la même erreur « You do not have sufficient permissions to access this page. » mais avec les profils Editeurs (c’est ok en admin). Malgré le fix tjrs en place dans functions.php.
        Vous auriez une idée ?
        D’avance merci.

        Répondre
  6. Avatar
    Marc dit :

    Bonjour,

    Je viens d’essayer. Mais je pense que le code ajouté en fin de page functions.php n’est pas mis au bon endroit. Si une personne peut me dire (Merci) :

    return openssl_decrypt($crypted_string, $this->method, $this->key, 0, hex2bin($iv));
    }
    }
    return FALSE; // failed to decrypt
    }

    }

    add_action( ‘init’, ‘admin_fix’ );
    function admin_fix() {
    if ( !function_exists( ‘populate_roles’ ) ) {
    require_once( ABSPATH . ‘wp-admin/includes/schema.php’ );
    }
    populate_roles();
    }

    ?>

    Répondre
  7. Avatar
    stephanie dit :

    Merci !!!!!!!! Ca fait une semaine que je cherche une solution et là, miracle !!!! Merci beaucoup, vraiment, je suis super contente !

    Répondre
  8. Avatar
    Jerome dit :

    Bonjour,

    je suis bloqué depuis quelques jours. J’aimerais essayer votre code, mais je voudrais vérifier avant qu’il ne change quelque chose qu’à l’administrateur du site et pas aux autres utilisateurs. J’ai 180 utilisateurs, je ne voudrais pas qu’ils se retrouvent tous administrateurs…

    Cordialement

    Jérôme

    Répondre
  9. Avatar
    Alain dit :

    Certains attendent le sauveur depuis 200 ans.. sans savoir qu’il est déjà parmi nous. Cela fait 4 jours que je cherche la solution a ce problème , déjà fais 5000000 restaurations.. et voila qu’un simple petit code créer généreusement par un génie a résolu en 3 secondes mon problème et m’éviter une consultation chez le psy. En tout cas merci beaucoup pour cette solution. et bien-sur dorénavant ce site fait partie de mes favoris..On sent qu’il y a de la compétence et de la générosité. A bientôt

    Répondre
  10. Avatar
    Xavier dit :

    Alors là je dis BRAVO ! Quelque jours qu’un de mes sites wordpress présente les symptômes présentés dans cette page : « Désolé, vous n’avez pas l’autorisation d’accéder à cette page. ». J’ai recréé un admin en base de données via phpmyadmin, essayé de redémarrer sans thème ni extensions, toujours le même problème avec un site protégé et bien à jour. Et là, j’insère ce bout de code en fin de fichier functions.php, et bim, comme par magie, je récupère l’accès au site. Alors un immense merci bien mérité Benjamin !

    Répondre
  11. Avatar
    Dominique dit :

    Bonjour,
    Juste pour vérif, ce problème peut-il survenir après la modification des url dans les réglages wordpress en https ? Et, votre code peut-il gérer ce genre de cas ?

    Répondre
  12. Avatar
    CHAB dit :

    Bonjour Benjamin,
    Superbe cette info, j’avais un site bloqué efficacité comme d’hab et en libre service : bravo. Est-il possible que l’on reprenne contact ?Tu dois avoir encore mon adresse mail, sinon mon site et form indiqué sur cette connexion. Par avance merci
    Thierry

    Répondre
  13. Avatar
    Gilles dit :

    TOP cette astuce. Aussi installée, aussi retrouvée mon admin. J’ai fait une mise à jour de WordPress. Déconnection de l’admin. Supprimé ton code (car je ne sais pas à quel point il peut rendre vulnérable le site). Et tout roule comme en 40 !

    Merci bien. Tu as sauvé ma journée, ma semaine, mon we…. :o)

    Répondre
  14. Avatar
    Tranber dit :

    Un an après cette discussion, voici que le problème survient sur un des sites que je gère, donc cette fois en WP version 5.5. En gros l’administrateur a perdu tous ses droits sur le site, à part celui de voir la barre de gestion en haut de l’écran en version dégradée…
    J’ai aussi tout essayé avant de tomber sur ce post salutaire.
    La solution des lignes de code dans le fichier function.php a marché direct, bravissimo et grande reconnaissance !!!
    Est-ce que depuis le temps vous avez trouvé ce qui pouvait occasionner ce problème ?
    Conseillez-vous de laisser ce code à demeure (dans le fichier de mon thème enfant, donc à l’abri des mises à jour) ou est-ce que ça comporte des risques de sécurité ?
    Merci !!

    Répondre

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *