Magento 2: Mevcut yönetici kullanıcı ayrıntılarını nasıl edinebilirim?


Yanıtlar:


30

bunu sınıfınızın yapıcısına eklemeniz gerekir

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

Ardından bu yöntemi oluşturun

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

bu size oturum açmış geçerli yönetici verir.
Daha sonra $user->getUsername()veya gibi ayrıntıları alabilirsiniz $user->getEmail().


1
Uyarı: Kodları ekledikten sonra çalıştırmamız gerekiyor bin/magento setup:di:compile, aksi takdirde " Oturum hiçbiri verilmedi " hatası görünecektir .
Key Shang

açıklama ile mükemmel cevap !!! +1 :)
SagarPPanchal

@Marius Müşteri formu arka ucu olarak giriş ekledim. Ancak, müşteri görünümünde yönetici giriş yapan ürün görünümü sayfasında yönetici ayrıntıları istiyorum.
Masud Shaikh

yönetici oturumuna ön uçtan erişemezsiniz.
Marius

7

Mevcut yönetici kullanıcı ayrıntılarını nasıl edinebilirim?

kumandanıza arka uç oturumu enjekte edin

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

}

ve kullanıcı adı veya e-posta almak için bunu kullanın

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

Ancak kontrolörünüze enjekte etmek gerekmez.
MagePsycho

3

Denetleyiciniz zaten genişliyor, \Magento\Backend\App\Actionböylece yetkilendirme nesnesi zaten var. Ek enjeksiyon gerekmez. Kullanıcıyı almak için sadece bu işlevi kullanın:

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

Diğer cevaplar, gerekli olmayan çift enjeksiyonları önermektedir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.