Magento – How to create admin user programmatically in 1.9.3.1 without current admin password

magento-1.9

I am creating a seller management and I want to login seller to admin panel by assigning them a seller role, role is not a problem, But when I am creating user then user created in admin but I cannot login in it because it is generating random password below is my code:

 $model = Mage::getModel('admin/user');

            $model->setUserId($this->getRequest()->getParam('id'))
                    ->setData($data);                
           // print_r($model->getNewPassword());
            if ($model->hasNewPassword() && $model->getNewPassword() === '') {
                $model->unsNewPassword();
            }
            if ($model->hasPasswordConfirmation() && $model->getPasswordConfirmation() === '') {
                $model->unsPasswordConfirmation();
            }                

            $result = $model->validate();

            // print_r($result); die();

            if (is_array($result)) {
                Mage::getSingleton('adminhtml/session')->setUserData($data);
                foreach ($result as $message) {
                    Mage::getSingleton('adminhtml/session')->addError($message);
                }
                $this->_redirect('*/*/edit', array('_current' => true));
                return $this;
            }

            $model->setCurrentPassword('admin@123');
            $model->save();

            $role_id = Mage::helper('marketplace')->getConfig('general', 'vendor_role');

            $model->setRoleIds(array($role_id))
                    ->setRoleUserId($model->getUserId())
                    ->saveRelations();



                    // print_R($model->getData()); exit();
            $model->save();

Best Answer

Create a file in root directory. for ex. admin.php

<?php
    $mageFilename = 'app/Mage.php';
    if (!file_exists($mageFilename)) {
        echo $mageFilename." was not found";
        exit;
    }
    require_once $mageFilename;
    Mage::app();

    try {
        //create new user by providing details below
        $user = Mage::getModel('admin/user')
            ->setData(array(
                'username'  => 'admin1',
                'firstname' => 'John',
                'lastname'  => 'Doe',
                'email'     => 'john@example.com',
                'password'  => 'admin123',
                'is_active' => 1
            ))->save();

    } catch (Exception $e) {
        echo $e->getMessage();
        exit;
    }

    try {
        //create new role
        $role = Mage::getModel("admin/roles")
                ->setName('Inchoo')
                ->setRoleType('G')
                ->save();

        //give "all" privileges to role
        Mage::getModel("admin/rules")
                ->setRoleId($role->getId())
                ->setResources(array("all"))
                ->saveRel();

    } catch (Mage_Core_Exception $e) {
        echo $e->getMessage();
        exit;
    } catch (Exception $e) {
        echo 'Error while saving role.';
        exit;
    }

    try {
        //assign user to role
        $user->setRoleIds(array($role->getId()))
            ->setRoleUserId($user->getUserId())
            ->saveRelations();

    } catch (Exception $e) {
        echo $e->getMessage();
        exit;
    }

    echo 'Admin User sucessfully created!<br /><br /><b>THIS FILE WILL NOW TRY TO DELETE ITSELF, BUT PLEASE CHECK TO BE SURE!</b>';
    @unlink(__FILE__);
    ?>

Run the file from root directory. for ex.: www.abc.com/admin.php

Related Topic