Magento 2: come ottenere i dettagli dell'utente corrente dell'amministratore?


Risposte:


30

devi aggiungerlo al costruttore della tua classe

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

Quindi creare questo metodo

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

questo ti darà l'amministratore attualmente connesso.
Successivamente puoi ottenere i dettagli come $user->getUsername()o $user->getEmail().


1
Avviso: Dopo aver aggiunto i codici, è necessario eseguirlo bin/magento setup:di:compile, altrimenti sembrerebbe l' errore " Sessione nessuno specificato ".
Key Shang

risposta perfetta con spiegazione !!! +1 :)
SagarPPanchal,

@Marius Ho aggiunto il login come backend del modulo cliente. Ma voglio i dettagli dell'amministratore nella pagina di visualizzazione del prodotto a cui l'amministratore accede al cliente.
Masud Shaikh,

non è possibile accedere alla sessione di amministrazione dal frontend.
Marius

7

Come ottenere i dettagli attuali dell'utente amministratore?

iniettare sessione back-end nel controller

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

}

e utilizzalo per ottenere il nome utente o l'e-mail

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

Tuttavia, non è necessario iniettare nel controller.
MagoPsycho,

3

Il tuo controller si estende già, \Magento\Backend\App\Actionquindi ha già l'oggetto di autorizzazione. Non sono necessarie iniezioni aggiuntive. Per ottenere l'utente è sufficiente utilizzare questa funzione:

    /** @var \Magento\User\Model\User $user*/
    $user = $this->_auth->getUser();

Altre risposte suggeriscono iniezioni duplicate, che non sono necessarie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.