Magento 2: Wie erhalte ich aktuelle Administrator-Benutzerdetails?


Antworten:


29

Sie müssen dies dem Konstruktor Ihrer Klasse hinzufügen

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

Dann erstellen Sie diese Methode

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

Dadurch erhalten Sie den aktuell angemeldeten Administrator.
Sie können später die Details wie $user->getUsername()oder erhalten $user->getEmail().


1
Hinweis: Nach dem Hinzufügen der Codes muss ausgeführt werden bin/magento setup:di:compile, da sonst der Fehler " Sitzung keine angegeben " angezeigt wird.
Key Shang

perfekte Antwort mit Erklärung !!! +1 :)
SagarPPanchal

@Marius Ich habe Login als Kundenformular-Backend hinzugefügt. Ich möchte jedoch Administratordetails auf der Produktansichtseite, die sich beim Kunden anmelden.
Masud Shaikh

Sie können nicht über das Frontend auf die Administrationssitzung zugreifen.
Marius

7

Wie erhalte ich aktuelle Administrator-Benutzerdetails?

Injizieren Sie eine Backend-Sitzung in Ihren Controller

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

}}

und verwenden Sie diese Option, um den Benutzernamen oder die E-Mail-Adresse abzurufen

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

Es ist jedoch nicht erforderlich, in Ihren Controller einzuspritzen.
MagePsycho

3

Ihr Controller wird bereits erweitert, \Magento\Backend\App\Actionsodass er bereits über das Berechtigungsobjekt verfügt. Es sind keine zusätzlichen Injektionen erforderlich. Um den Benutzer zu erhalten, verwenden Sie einfach diese Funktion:

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

Andere Antworten deuten auf doppelte Injektionen hin, die nicht benötigt werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.