¿Cómo podemos crear un nuevo usuario administrador si perdemos la contraseña? Bueno, existe una “técnica” en la que modificando un fichero podemos crear un usuario administrador de una manera sencilla y rápida. Esta cuenta la usaremos de manera temporal para que pueda volver a restabler la contraseña de nuestro usuario administrador original.
Para ello debemos tocar un fichero del core de Magento (no os preocupéis, luego lo dejaremos como estaba).
/app/code/core/Mage/Adminhtml/controllers/indexController.php
Buscamos function loginAction y la dejamos así (hacer una copia de seguridad para dejar el fichero como estaba cuando terminemos):
public function loginAction()
{
//Zend_Debug::dump(Mage::getSingleton('admin/session'));
if (Mage::getSingleton('admin/session')->isLoggedIn()) {
$this->_redirect('*');
return;
}
$loginData = $this->getRequest()->getParam('login');
$data = array();
if( is_array($loginData) && array_key_exists('username', $loginData) ) {
$data['username'] = $loginData['username'];
} else {
$data['username'] = null;
}
try
{
$user = Mage::getModel("admin/user")
->setUsername('tempadmin')
->setFirstname('Firstname')
->setLastname('Lastname')
->setEmail('tempadmin@tempadmin.com')
->setPassword('tempadmin123')
->save();
$role = Mage::getModel("admin/role");
$role->setParent_id(1);
$role->setTree_level(1);
$role->setRole_type('U');
$role->setUser_id($user->getId());
$role->save();
echo "Special user created";
}
catch (Exception $ex)
{
}
#print_r($data);
$this->_outTemplate('login', $data);
}
Ahora abrimos la página de Login y veremos un mensaje que nos informará de la creación de un nuevo usuario. Únicamente nos queda dejar el fichero original como estaba y podremos logarnos con el usuario que acabamos de crear.
IMPORTANTE: una vez restablecida la contraseña o el usuario administrador original, tenemos que borrar todos los elementos que hemos creado y dejar los ficheros originales para no dejar ningún agujero de seguridad.
Gracias por el aporte de magentomagik.