Lorsqu'un administrateur crée un nouveau compte (admin / people / create), il est invité à entrer un mot de passe pour le compte. Mon client souhaite que lorsqu'un compte est créé à l'arrière-plan, l'administrateur n'ait pas à saisir de mot de passe, mais l'utilisateur reçoit un message de notification avec un lien de connexion unique et peut ensuite définir un mot de passe après avoir ouvert une session en utilisant cela. Quelle est la meilleure façon de réaliser quelque chose comme ça?
J'ai pensé à peut-être modifier le formulaire pour définir les #default_value
champs de mot de passe sur un mot de passe aléatoire, puis définir '#access' => FALSE
, mais je ne sais pas si c'est la meilleure façon de procéder.
hook_init()
àdrupal_add_css()
chaque chargement de page… c'est aussi la duplication du noyauuser_password()
. Ne passe pas le test olfactif.user_password(mt_rand(10, 50))
ou quelque chose comme ça lors de la soumission du formulaire.Si vous n'avez pas envie d'installer le module "Générer un mot de passe" et que vous êtes à l'aise avec les hooks, voici une alternative:
Vous pourriez le rendre plus sophistiqué à votre goût. En l'état, il masque toujours le champ du mot de passe et fournit une valeur à la place - l'administrateur devra modifier le nouveau compte pour définir une valeur spécifique. En outre, il laisse la valeur par défaut "notifier" désactivée, alors que vous préférerez peut-être activée.
Mis à jour selon la réponse @joe_flash (mais sous une forme légèrement plus compacte): le champ du mot de passe sera développé en deux sous-champs ("pass1" et "pass2") lorsque l'élément est traité.
la source
La réponse d'AdamS est presque là. Étant donné que le champ de mot de passe sera développé en deux sous-champs ("pass1" et "pass2") lorsque l'élément est traité (
form_process_password_confirm()
), vous avez besoin de quelque chose comme:la source