Magento 2: ¿Cómo obtener los detalles del usuario administrador actual?

12

¿Cómo obtener los detalles del usuario administrador actual en el back-end?

Mike Zhang
fuente

Respuestas:

30

necesitas agregar esto al constructor de tu clase

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

Luego crea este método

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

esto le dará el administrador con sesión iniciada actual.
Más tarde puede obtener los detalles como $user->getUsername()o $user->getEmail().

Marius
fuente
1
Aviso: Después de agregar los códigos, necesitamos ejecutar bin/magento setup:di:compile, de lo contrario, aparecerá el error " Sesión no dada ".
Key Shang
respuesta perfecta con explicación !!! +1 :)
SagarPPanchal
@Marius He agregado inicio de sesión como backend de formulario de cliente. Pero quiero detalles de administrador en la página de vista del producto que admin inicia sesión para el cliente.
Masud Shaikh
no puede acceder a la sesión de administrador desde la interfaz de usuario.
Marius
7

¿Cómo obtener los detalles del usuario administrador actual?

inyectar sesión de fondo en su controlador

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

}

y use esto para obtener el nombre de usuario o correo electrónico

 $this->authSession->getUser()->getUsername();
$this->authSession->getUser()->getEmail();
Surendra Kumar Ahir
fuente
Sin embargo, no es necesario inyectar en su controlador.
MagePsycho
3

Su controlador ya se extiende, \Magento\Backend\App\Actionpor lo que ya tiene el objeto de autorización. No se necesitan inyecciones adicionales. Para obtener el usuario simplemente use esta función:

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

Otras respuestas sugieren inyecciones duplicadas, que no son necesarias.

Jacques
fuente