Magento 2: Como obter detalhes do usuário administrador de carga por ID?

8

Eu tenho um ID de usuário administrador 15, Como carregar o modelo para obter nome de usuário e função de usuário? No Magento1 isso foi possível usando:

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

Como isso funciona no Magento2?

Magento2 Devloper
fonte

Respostas:

15

Você precisa adicionar isso à sua classe e construtor:

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

Em seguida, crie um método na mesma classe para recuperar os dados da função:

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

Você pode usar o seguinte código:

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

Mas não é recomendável usar ObjectManagerdiretamente no código. Tente adicionar Magento\User\Model\UserFactoryao seu construtor de classe e use-o para carregar o cliente.

Exemplo:

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
fonte
0

O seguinte ajudará a obter o ID do usuário logado no magento. Obrigado

$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
fonte