Prestashop : Login automatique dans l’administration

Ce tutoriel est compatible avec les versions de Prestashop suivantes :
1.7.5 1.7.6 1.7.7 +

Je suis amené à devoir tester le fonctionnement de mes modules sur pas mal de versions différentes de Prestashop, souvent en navigation privée.
Ce qui nécessite de saisir l’email et le  mot de passe de l’administration pour s’y connecter.
Voici un petit module qui pourra vous faire gagner du temps sur des instances de développement  ( ce n’est évidemment pas fait pour un site en production )
Celui ci s’appellera hhadminautologin et il super basique :

On rajoute simplement un petit javascript dans la page de login dans l’administration.
Et celui-ci va remplir les champs email et mot de passe avec les valeurs configurées, puis soumettre le formulaire de long
Les valeurs sont en dur dans le module, mais il serait tout à fait possible de rajouter une configuration du module dans l’administration.

C’est parti pour le code
Fichier hhadminautologin/hhadminautologin.php

<?php
if (!defined('_PS_VERSION_')) {
    exit;
}
class HhAdminAutoLogin extends Module
{
    public function __construct()
    {
        $this->name = 'hhadminautologin';
        $this->tab = 'others';
        $this->version = '0.1.0';
        $this->author = 'hhennes';
        $this->bootstrap = true;
        parent::__construct();
 
        $this->displayName = $this->l('Hh Admin Auto Login');
        $this->description = $this->l('Avoid to log in admin website');
    }
 
    /**
     * Installation du module
     * @return bool
     */
    public function install()
    {
        if (!parent::install()
            || !$this->registerHook('actionAdminLoginControllerSetMedia')
        ) {
            return false;
        }
 
        return true;
    }
 
    /**
     * Ajout de media sur le controller de login de l'administration
     * @param array $params
     */
    public function hookActionAdminLoginControllerSetMedia($params)
    {
        if (null === $this->context->employee->id) {
            Media::addJsDef([$this->name . '_email' => 'user@admin.com']); //Mettre ici l'utilisateur
            Media::addJsDef([$this->name . '_password' => 'password']); //Mettre ici le mot de passe
            $this->context->controller->addJS(
                $this->_path . '/views/js/admin/login.js'
            );
        }
    }
}

Fichier hhadminautologin/views/js/admin/login.js

$(document).ready(function () {
    $('#email').val(hhadminautologin_email);
    $('#passwd').val(hhadminautologin_password);
    if ( typeof hhadminautologin_submited == 'undefined' ) {
        hhadminautologin_submited = true;
        $('#submit_login').click();
    }
});

Une fois le module installé, plus besoin de s’embêter à se loguer dans l’administration 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *