I want to create an admin user programmatically , from the frontend controller my frontend code is:
<?php
namespace Learning\HelloPage\Controller\Account;
use Magento\Framework\App\Action\Context;
class Add extends \Magento\Backend\App\Action
{
protected $_userFactory;
public function __construct(
\Magento\User\Model\UserFactory $userFactory
)
{
$this->_userFactory = $userFactory;
}
public function execute(){
$adminInfo = [
'username' => 'killer',
'firstname' => 'admin',
'lastname' => 'admin',
'email' => 'me@helloworld.com',
'password' =>'hello@123',
'interface_locale' => 'en_US',
'is_active' => 1
];
$userModel = $this->_userFactory->create();
$userModel->setData($adminInfo);
$userModel->setRoleId(7);
try{
$userModel->save();
echo 'saved';
} catch (\Exception $ex) {
$ex->getMessage();
}
}
}
Best Answer
For the first thing If you are using this
controller
on frontend side then you should extend theMagento\Framework\App\Action\Action
class Instead ofMagento\Backend\App\Action
And you can use below script to create an user for admin
Now you can use this like,