web-dev-qa-db-fra.com

Joomla 3.x - Envoyer le mot de passe de l'utilisateur par email

J'ai une situation ici. J'ai un groupe d'utilisateurs 'Admin' spécifique, qui peut modifier les mots de passe d'autres utilisateurs. Je veux m'assurer que, lorsque ce groupe d'utilisateurs spécifique "Admin" modifie un mot de passe d'utilisateur (pas l'utilisateur lui-même), l'utilisateur reçoit un nouveau mot de passe avec un lien de connexion. Comment puis-je faire ceci? Dois-je créer un plugin ou est-il possible de le réaliser par configuration?

1
Poo123

Mon approche serait de développer un plugin utilisateur personnalisé. Le plugin principal utilisateur/joomla le fait, mais uniquement lors de la création d'un nouvel utilisateur. L'événement onUserAfterSave ($ user, $ isnew, $ success, $ msg) est déclenché et le paramètre $ user sera renseigné avec les valeurs de l'utilisateur en cours de modification.

dans votre cas, vous souhaitez envoyer le courrier électronique lorsque le mot de passe est modifié depuis le backend par un administrateur. Cela signifie que vous devez remplir les conditions suivantes:

public function onUserAfterSave($user, $isnew, $success, $msg)
{
  $currentUserGroups = JFactory::getUser()->get('groups');
  $authorizedGroup = 7; //Default ID for the group administrator
  if (!$isnew //Not a new user
    && $user['password_clear'] //new password was set.
    && $this->app->isAdmin() // Only from the admin
    && in_array($authorizedGroup,$currentUserGroups) //User is authorized
  ) {
    //Send the email here.
  }
}
0
Jeremy