Magento2 :Comment obtenir les détails actuels de l'utilisateur administrateur ?
-
29-09-2020 - |
Question
Comment obtenir les détails de l'utilisateur administrateur actuel dans le back-end ?
La solution
vous devez l'ajouter au constructeur de votre classe
protected $authSession;
public function __construct(
....
\Magento\Backend\Model\Auth\Session $authSession,
....
) {
....
$this->authSession = $authSession;
....
}
Créez ensuite cette méthode
public function getCurrentUser()
{
return $this->authSession->getUser();
}
cela vous donnera l'administrateur actuellement connecté.
Vous pourrez plus tard obtenir les détails comme $user->getUsername()
ou $user->getEmail()
.
Autres conseils
Injectez la session Backend dans votre contrôleur
public function __construct(
....
\Magento\Backend\Model\Auth\Session $authSession,
....
) {
....
$this->authSession = $authSession;
....
}
et utilisez-le pour obtenir le nom d'utilisateur ou le courrier électronique
$this->authSession->getUser()->getUsername();
$this->authSession->getUser()->getEmail();
Votre contrôleur s'étend déjà \Magento\Backend\App\Action
il a donc déjà l'objet d'autorisation.Aucune injection supplémentaire n’est nécessaire.Pour obtenir l'utilisateur, utilisez simplement cette fonction :
/** @var \Magento\User\Model\User $user*/
$user = $this->_auth->getUser();
D'autres réponses suggèrent des injections en double, qui ne sont pas nécessaires.