当前位置: 技术文章>> magento2中的创建、编辑或解锁管理员帐户以及代码示例

文章标题:magento2中的创建、编辑或解锁管理员帐户以及代码示例
  • 文章分类: Magento
  • 10795 阅读
系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》

本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。


在Magento 2中,可以使用命令行或代码创建、编辑或解锁管理员帐户。


创建管理员帐户:


可以使用以下命令在Magento 2中创建管理员帐户:


php bin/magento admin:user:create --admin-user=<username> --admin-password=<password> --admin-email=<email> --admin-firstname=<firstname> --admin-lastname=<lastname>

其中,<username>是管理员用户名,<password>是管理员密码,<email>是管理员电子邮件地址,<firstname>是管理员的名字,<lastname>是管理员的姓氏。


编辑管理员帐户:


可以使用以下代码编辑Magento 2中的管理员帐户:


<?php
use Magento\User\Api\UserRepositoryInterface;
use Magento\User\Model\UserFactory;
class AdminUserEdit
{
    /**
     * @var UserRepositoryInterface
     */
    protected $userRepository;
    /**
     * @var UserFactory
     */
    protected $userFactory;
    public function __construct(
        UserRepositoryInterface $userRepository,
        UserFactory $userFactory
    ) {
        $this->userRepository = $userRepository;
        $this->userFactory = $userFactory;
    }
    /**
     * Edit admin user
     *
     * @param int $userId
     * @param array $userData
     * @return void
     */
    public function editAdminUser($userId, $userData)
    {
        $user = $this->userRepository->getById($userId);
        if ($user->getId()) {
            $user->setData($userData);
            $this->userRepository->save($user);
        }
    }
}

在此示例中,我们使用UserRepositoryInterface和UserFactory来编辑管理员帐户。$userId是要编辑的管理员用户的ID,$userData是要更新的数据数组。


解锁管理员帐户:


如果管理员帐户被锁定,可以使用以下代码来解锁该帐户:


<?php
use Magento\User\Api\UserRepositoryInterface;
class AdminUserUnlock
{
    /**
     * @var UserRepositoryInterface
     */
    protected $userRepository;
    public function __construct(
        UserRepositoryInterface $userRepository
    ) {
        $this->userRepository = $userRepository;
    }
    /**
     * Unlock admin user
     *
     * @param int $userId
     * @return void
     */
    public function unlockAdminUser($userId)
    {
        $user = $this->userRepository->getById($userId);
        if ($user->getId()) {
            $user->setLockExpires(null);
            $user->setFailuresNum(0);
            $user->unsLockExpires();
            $user->unsFailuresNum();
            $this->userRepository->save($user);
        }
    }
}

在此示例中,我们使用UserRepositoryInterface来解锁管理员帐户。$userId是要解锁的管理员用户的ID


推荐文章