Magento 2: Wie erhalte ich das Laden von Administrator-Benutzerdetails anhand der ID?


8

Ich habe eine Administrator-Benutzer-ID 15. Wie lade ich das Modell, um den Benutzernamen und die Benutzerrolle zu erhalten? In Magento1 war dies möglich mit:

$adminuserId = 15;
Mage::getModel('admin/user')->load($adminuserId)->getRole()->getData();

Wie funktioniert es in Magento2?

Antworten:


15

Sie müssen dies Ihrer Klasse und Ihrem Konstruktor hinzufügen:

protected $userFactory;
public function __construct(
    ...
    \Magento\User\Model\UserFactory $userFactory,
    ...
)
{
    ...
    $this->userFactory = $userFactory;
    ...
}

Erstellen Sie dann eine Methode in derselben Klasse, um die Rollendaten abzurufen:

public function getRoleData($userId)
{
    $user = $this->userFactory->create()->load($userId);
    $role = $user->getRole();
    $data = $role->getData();
    return $data;
}

3

Sie können folgenden Code verwenden:

$adminuserId = 15;
$user = \Magento\Framework\App\ObjectManager::getInstance()->create(
    'Magento\User\Model\User'
);
$user->load($adminuserId);

Es wird jedoch nicht empfohlen, ObjectManagerdirekt im Code zu verwenden. Versuchen Sie Magento\User\Model\UserFactory, Ihrem Klassenkonstruktor etwas hinzuzufügen und ihn zum Laden des Kunden zu verwenden.

Beispiel:

class SomeMyClass
{
    protected $_userFactory;

    public function __construct(
        \Magento\User\Model\UserFactory $userFactory
    ) {
        $this->_userFactory = $userFactory;
    }

    public function someFunction()
    {
        $adminuserId = 15;
        $user = $this->_userFactory->create();
        $user->load($adminuserId);
    }
}

0

Das Folgende hilft, die magento-protokollierte Benutzer-ID zu erhalten. Vielen Dank

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$extensionUser = $objectManager->get('Magento\Backend\Model\Auth\Session')->getUser()->getUsername();
$extensionId = $objectManager->get('Magento\Backend\Model\Auth\Session')->getUser()->getID();
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.