Magento 2:IDで管理ユーザーの詳細を取得するにはどうすればよいですか?


8

管理者ユーザーID 15を持っていますが、モデルをロードしてユーザー名とユーザーロールを取得するにはどうすればよいですか?Magento1では、これは以下を使用して可能でした。

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

Magento2ではどのように機能しますか?

回答:


15

これをクラスとコンストラクタに追加する必要があります。

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

次に、同じクラスにメソッドを作成してロールデータを取得します。

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

3

次のコードを使用できます。

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

ただしObjectManager、コードで直接使用することはお勧めしません。Magento\User\Model\UserFactoryクラスコンストラクターに追加し、それを使用して顧客をロードしてみてください。

例:

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

以下は、magentoのログに記録されたユーザーIDを取得するのに役立ちます。ありがとうございました

$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();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.