Skip to content

Instantly share code, notes, and snippets.

@mapav
Created November 14, 2013 10:14
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mapav/7464484 to your computer and use it in GitHub Desktop.
Save mapav/7464484 to your computer and use it in GitHub Desktop.
Magento admin user quick adding
<?php
/*
* Create New Admin User
* @author Ivan Weiler, Inchoo <web@inchoo.net>
*/
//define USERNAME, EMAIL and PASSWORD and uncomment(#) this 3 lines
#define('USERNAME','inchoo');
#define('EMAIL','xyz@inchoo.net');
#define('PASSWORD','inchoo555');
if(!defined('USERNAME') || !defined('EMAIL') || !defined('PASSWORD')){
echo 'Edit this file and define USERNAME, EMAIL and PASSWORD.';
exit;
}
//load Magento
$mageFilename = 'app/Mage.php';
if (!file_exists($mageFilename)) {
echo $mageFilename." was not found";
exit;
}
require_once $mageFilename;
Mage::app();
try {
//create new user
$user = Mage::getModel('admin/user')
->setData(array(
'username' => USERNAME,
'firstname' => 'John',
'lastname' => 'Doe',
'email' => EMAIL,
'password' => PASSWORD,
'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__);
@amitpatelx
Copy link

What if there is an error while assigning user to role? Ideally it should rollback all the changes made from the beginning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment