Tout savoir sur WordPress
Tutoriel WordPress

Désactiver les champs de mot de passe dans l’administration

Vous souhaitez désactiver l’édition du mot de passe à vos utilisateurs dans l’administration ? Quelques lignes de code suffiront à satisfaire votre envie.

L’un des points forts de WordPress est de proposer des mots de passe sécurisés à ses membres lors de la création de leur compte. Malheureusement, vous ne pouvez pas être sûr que l’utilisateur va garder ce mot de passe car il peut le changer par un nouveau qui peut être beaucoup moins sécurisé à partir de sa fiche profil.

Ce problème peut être résolu en ajoutant un filtre dans le fichier functions.php présent à la racine de votre thème :

add_action('admin_init', 'disable_password_fields', 10 );
function disable_password_fields() {
  if ( !current_user_can( 'administrator' ) )
    $show_password_fields = add_filter( 'show_password_fields', '__return_false' );
}

A partir de maintenant, seuls les administrateurs ont la possibilité de modifier le mot de passe d’un membre de votre site Internet.

Cet article a été mis à jour il y a 2568 jours - Il n'est peut être plus à jour !

Article écrit par Jonathan B.

Jonathan est le co-fondateur de WP Media, startup connue pour être l’auteur de WP Rocket et Imagify. Il est aussi co-organisateur du WordCamp Lyon et Paris.

20 Commentaires

  1. Merci pour l’astuce, effectivement cela fait disparaitre ce champ de la page profil… Hélas avant connexion il est toujours possible de cliquer sur « mot de passe perdu » pour obtenir un lien où le changer… Par quelquechose de très simple et pas du tout sécurisé !

    Comment faire pour que WP génère un nouveau mot de passe directement, je ne vois rien dans mon tableau de bord, pourtant dans wp-login je lis « ‘confirm’ == $_GET[‘checkemail’] », ce dont j’ai besoin est « ‘newpass’ == $_GET[‘checkemail’] »…
    Mais comment l’obtenir, mystère, aurais-je un souci avec mon install ?

    AG

    • Ce n’est pas trop grave si le membre peut demander un nouveau mot de passe via WordPress.

      Le but de l’astuce est de garder des mots de passe sécurisés. Si le membre fait une demande de régénération du mot de passe, ça sera toujours autant sécurisé puisque c’est WordPress qui l’aura défini :)

    • Oui, mais dans mon cas ce n’est pas un nouveau mot de passe mais bien un lien où le changer, qui est envoyé par WP. Probablement un effet de bord d’un plugin ?!

    • Autant pour moi !

      En effet, une fois que l’on clique sur le lien donné dans le mail de confirmation, on nous demande de taper notre nouveau mot de passe.

      Je réfléchi à comment on peut faire pour supprimer.

      Je reviens vers vous dès que j’ai trouvé une solution :)

  2. Ah ! Bonne nouvelle donc, ce n’est pas que chez moi… Pourtant ça fait longtemps que je cherche :)

    J’ai testé plusieurs plugins censés interdire les mots de passe non sécurisés : Private WordPress Access Control Manager, Better WP Security, Password Rules, aucun n’a apporté la solution pourtant clairement donnée dans wp-login, suffit d’avoir ‘newpass’ == $_GET[‘checkemail’] !!

    ;-(

  3. J’ai trouvé la solution complète ;)

    Le code est à jour ^^

    Merci pour avoir précisé le problème sur la page de connexion, je n’ai pas fait attention à cette partie.

  4. Hmm… Désolé d’écrire que la suppression de LostPassword ne me parait pas une solution satisfaisante pour l’utilisateur !…

    • Il va falloir trouver un juste milieu dans ce cas :)

      Après réflexion, j’ai supprimé le code que j’ai ajouté puisque ça ne fait pas partie de l’intitulé du titre de l’article ^^

      Je ferai un article sur la désactivation de la régénération de mot de passe ;)

    • C’est exact, et je m’excuse d’avoir débordé. J’attends avec impatience l’article sur le sujet… En préambule je me permets ces quelques questions : pourquoi la réponse n’est-elle pas aussi simple alors qu’elle est écrite dans le code de wp-login, et que tout semble prévu pour cela, jusqu’à l’intitulé du bouton sur la page LostPassword qui s’appelle « Générer un mot de passe » ?…

      Merci pour tout ! ;)

  5. Bonjour,
    Je suis dans l’impossibilité de rentrer dans mon blog.
    le mot de passe ne veut plus fonctionner et bien sur j’ai rien fait de mieux que de le supprimer et wp.com ne veut pas m’en donner un nouveau pretextant que la cle ne sera pas exact mais c’est eux qui me la transmette – aidez moi svp merci

  6. La solution apportée ici ne fait que supprimer des champs mais n’empêche pas la modification du pass par un utilisateur averti (hacker?).
    Voici un code complet qui permet d’empêcher réellement cette modification.
    https://gist.github.com/2714688

  7. Salut Jonathan, salut Julio, et tous,
    Merci pour ce code. Pour ma part, toujours la même problématique, toutefois depuis mon message initial je me suis rendu compte que sur une vieille install WP 2.9.2, il était parfaitement possible d’opter pour des mots de passes générés (i.e. sans changement par utilisateur), ce qui n’est plus possible maintenant ! Bug, régression,…?

  8. Question pertinente, je ne vois pas d’option ! En revanche ce qui est certain c’est qu’en effectuant une demande, après validation du lien de confirmation j’obtiens un nouveau mot de passe, généré… « Vérifiez votre compte e-mail pour y trouver votre nouveau mot de passe. »
    J’effectuerai un diff de wp-login à l’occasion…

  9. Avec toutes les 3.x que je fais tourner, lorsque je demande un mot de passe, j’obtiens un lien où aller le changer !! D’où mes questions répétées, ici et ailleurs… Que personne ne comprend… Plugin clash ? Même en désactivant tout, cela me donne le même résultat…

  10. Comme pour toutes les versions, quand je demande un nouveau pass il est aléatoirement créé, et dans la 2.9.2 je peux changer mon pass comme je veux et je ne peux pas demander à WP de m’en créer un aléatoire sans faire cette demande de pass.
    Soit j’ai pas compris, soit tu t’es mal exprimé.

  11. En un sens tu me rassures… Toutefois je reste inquiété par cet utilisateur qui m’a avoué que son mot de passe ne faisait qu’une seule lettre !! Surprenant que cet aspect de WP ne soit pas plus développé dans l’interface, car au niveau motorisation tout est prêt : choix de mots de passe générés ou à saisir, longueur des mots de passe, caractères spéciaux,…

  12. Au temps pour moi, tu as raison, WP a changé ça pour donner la possibilité aux personnes de se créer un pass. Mais je pense que ça doit rester faisable avec des hooks bien placés…
    Bien vu en tout cas :)

Donec consequat. odio Lorem consectetur dictum