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?

Magento2 Devloper
quelle

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;
}
Marius
quelle
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);
    }
}
lemk0
quelle
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();
Anna Durai
quelle