Crear un usuario administrador en Magento desde código

¿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):
PHP:
  1. public function loginAction()
  2.   {
  3.       //Zend_Debug::dump(Mage::getSingleton('admin/session'));
  4.       if (Mage::getSingleton('admin/session')->isLoggedIn()) {
  5.           $this->_redirect('*');
  6.           return;
  7.       }
  8.       $loginData = $this->getRequest()->getParam('login');
  9.       $data = array();
  10.       if( is_array($loginData) && array_key_exists('username', $loginData) ) {
  11.           $data['username'] = $loginData['username'];
  12.       } else {
  13.           $data['username'] = null;
  14.       }
  15.       try
  16.       {
  17.           $user = Mage::getModel("admin/user")
  18.                   ->setUsername('tempadmin')
  19.                   ->setFirstname('Firstname')
  20.                   ->setLastname('Lastname')
  21.                   ->setEmail('tempadmin@tempadmin.com')
  22.                   ->setPassword('tempadmin123')
  23.                   ->save();
  24.           $role = Mage::getModel("admin/role");
  25.           $role->setParent_id(1);
  26.           $role->setTree_level(1);
  27.           $role->setRole_type('U');
  28.           $role->setUser_id($user->getId());
  29.           $role->save();
  30.           echo "Special user created";
  31.       }
  32.       catch (Exception $ex)
  33.       {
  34.       }
  35.       #print_r($data);
  36.       $this->_outTemplate('login', $data);
  37.   }

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.
Compartir:
  • Print
  • Facebook
  • Twitter
  • Meneame
  • Google Bookmarks
  • del.icio.us
  • Digg

PROYECTOS RELACIONADOS


COMENTARIOS

En estos momentos no existen comentarios. ¡Sé el primero!

PARTICIPA EN LA CONVERSACIÓN

Introduce tu información personal o utiliza tu cuenta de twitter o facebook para acceder

   





SIGUENOSEN: