Magento 2: Bagaimana cara mendapatkan detail pengguna admin saat ini?


Jawaban:


30

Anda perlu menambahkan ini ke konstruktor kelas Anda

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

Kemudian buat metode ini

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

ini akan memberi Anda admin login saat ini.
Anda nanti bisa mendapatkan detail seperti $user->getUsername()atau $user->getEmail().


1
Perhatikan: Setelah menambahkan kode, kita perlu menjalankan bin/magento setup:di:compile, jika tidak maka akan muncul kesalahan " Sesi tidak diberikan ".
— Key Shang

jawaban sempurna dengan penjelasan !!! +1 :)
— SagarPPanchal

@Marius saya telah menambahkan login sebagai backend formulir pelanggan. Tapi saya ingin detail admin di halaman tampilan produk yang admin login ke pelanggan.
— Masud Shaikh

Anda tidak dapat mengakses sesi admin dari frontend.
— Marius

7

Bagaimana cara mendapatkan detail pengguna admin saat ini?

menyuntikkan sesi backend di controller Anda

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

}

dan gunakan ini untuk mendapatkan nama pengguna atau email

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

Tidak perlu menyuntikkan di controller Anda.
— MagePsycho

3

Pengontrol Anda sudah diperluas \Magento\Backend\App\Actionsehingga sudah memiliki objek otorisasi. Tidak diperlukan suntikan tambahan. Untuk mendapatkan pengguna cukup gunakan fungsi ini:

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

Jawaban lain menyarankan suntikan duplikat, yang tidak diperlukan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.