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


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().


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();

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.