Magento 2: Comment obtenir les détails de l'utilisateur administrateur actuel?


Réponses:


30

vous devez l'ajouter au constructeur de votre classe

protected $authSession;
public function __construct(
    ....
    \Magento\Backend\Model\Auth\Session $authSession, 
    ....
) {
    ....
    $this->authSession = $authSession;
    ....
}

Ensuite, créez cette méthode

public function getCurrentUser()
{
    return $this->authSession->getUser();
}

cela vous donnera l'administrateur actuellement connecté.
Vous pourrez ensuite obtenir les détails comme $user->getUsername()ou $user->getEmail().


1
Remarque: Après avoir ajouté les codes, nous devons exécuter bin/magento setup:di:compile, sinon il semblerait que l' erreur " Session aucune donnée ".
Key Shang

réponse parfaite avec explication !!! +1 :)
SagarPPanchal

@Marius J'ai ajouté la connexion en tant que backend du formulaire client. Mais je veux les détails de l'administrateur sur la page de visualisation du produit qui se connectent au client.
Masud Shaikh

vous ne pouvez pas accéder à la session d'administration depuis le frontend.
Marius

7

Comment obtenir les détails de l'utilisateur administrateur actuel?

injecter une session backend dans votre contrôleur

public function __construct(
....
\Magento\Backend\Model\Auth\Session $authSession, 
  ....
 ) {
  ....
   $this->authSession = $authSession;
   ....

}

et l'utiliser pour obtenir un nom d'utilisateur ou un e-mail

 $this->authSession->getUser()->getUsername();
$this->authSession->getUser()->getEmail();

Il n'est cependant pas nécessaire d'injecter dans votre contrôleur.
MagePsycho

3

Votre contrôleur s'étend déjà de \Magento\Backend\App\Actionsorte qu'il possède 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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.