Jump to content

Création d'employés


Recommended Posts

Bonjour, 

Je viens d'installer PS 1.7.2.2. .

 

Il m'est possible d'ajouter un employé à l'équipe, mais dès que ce nouvel employé essaye de se connecter avec ses attributions, on obtient le message suivant:

 

ContextErrorException in Profile.php line 224:Notice: Undefined index: classname
  1. in Profile.php line 224
  2. at ErrorHandler->handleError('8', 'Undefined index: classname', '/www/technobel/com/belgianshop/store/htdocs/classes/Profile.php', '224', array('authSlug' => 'ROLE_MOD_TAB_ADMINPICKING16_CREATE', 'matches' => array())) in Profile.php line 224
  3. at ProfileCore::findIdTabByAuthSlug('ROLE_MOD_TAB_ADMINPICKING16_CREATE') in Profile.php line 175
  4. at ProfileCore::getProfileAccesses('4') in Profile.php line 114
  5. at ProfileCore::getProfileAccess('4', '101') in AdminController.php line 549
  6. at AdminControllerCore->__construct() in LegacyContext.php line 62
  7. at LegacyContext->getContext() in EmployeeProvider.php line 50
  8. at EmployeeProvider->__construct(object(LegacyContext)) in appDevDebugProjectContainer.php line 3650
  9. at appDevDebugProjectContainer->getPrestashop_Security_Admin_ProviderService() in bootstrap.php.cache line 2248
  10. at Container->get('prestashop.security.admin.provider') in appDevDebugProjectContainer.php line 2877
  11. at appDevDebugProjectContainer->getPrestashop_Adapter_Security_AdminService() in bootstrap.php.cache line 2248
  12. at Container->get('prestashop.adapter.security.admin') in classes.php line 1970
  13. at ContainerAwareEventDispatcher->lazyLoad('kernel.request') in classes.php line 1938
  14. at ContainerAwareEventDispatcher->getListeners('kernel.request') in TraceableEventDispatcher.php line 245
  15. at TraceableEventDispatcher->preProcess('kernel.request') in TraceableEventDispatcher.php line 135
  16. at TraceableEventDispatcher->dispatch('kernel.request', object(GetResponseEvent)) in bootstrap.php.cache line 3236
  17. at HttpKernel->handleRaw(object(Request), '1') in bootstrap.php.cache line 3206
  18. at HttpKernel->handle(object(Request), '1', false) in bootstrap.php.cache line 3360
  19. at ContainerAwareHttpKernel->handle(object(Request), '1', false) in bootstrap.php.cache line 2562
  20. at Kernel->handle(object(Request), '1', false) in index.php line 86

 

Impossible pour cet "employé".....

 

Une idée?

 

Merci,

 

Bruno

 

Link to comment
Share on other sites

Bonjour,

J'ai le même problème après création de plusieurs comptes utilisateurs et profiles, lors du paramétrage des permissions certain comptes ne peuvent plus se connecter.

 

Notice au moment de l'accès à la page "Permissions" 

Notice à la ligne 224 du fichier /home/dev_ftp/www/xxx/classes/Profile.php
[8] Undefined index: classname

 

L'erreur au moment de la connexion avec un compte utilisateur "bugué" est la même que celle postée par l'auteur du sujet.

 

Cette erreur est lié au paramétrage des permissions concernant certain modules installés.

 

Merci par avance pour votre aide.

Edited by oivangine (see edit history)
Link to comment
Share on other sites

Je pense avoir trouvé un fix :

 

La regex utilisée ici  : 

preg_match(

            '/ROLE_MOD_[A-Z]+_(?P<classname>[A-Z]+)_(?P<auth>[A-Z]+)/',
            $authSlug,
            $matches
        );
 
Est restrictif sur les noms utilisés dans la table ps_authorization_role est en modifiant les noms utilisés l'erreur n'est plus levée.
Les caractère n'était pour moi pas des chiffres mais il est possible pour l'auteur que cela soit le cas je conseil donc de modifier le nom comme suit dans la DB : ROLE_MOD_TAB_ADMINPICKING16_CREATE => ROLE_MOD_TAB_ADMINPICKING_CREATE
 
Ainsi que la correspondance 'class_name' dans la table ps_tab
Edited by oivangine (see edit history)
Link to comment
Share on other sites

  • 5 months later...

Bonjour,

je développe un site avec prestashop 1.7.

J'ai créé un nouveau profil d'employé avec les permissions s'y rattachant.

Lorsque j'essaie de me connecter au back office avec ce compte emplyé j'ai exactement la même erreur : ContextErrorException in Profile.php line 224: Notice: Undefined index: classname

Le pire est que je ne puisse plus du tout me connecter au back office même avec le compte super admin puisque cette erreur se déclenche avant même que je puisse me loguer...

En supprimant le compte employee créé j'ai pu de nouveau me connecter en tant que super admin.

J'aimerais cependant pouvoir réussir à me loguer avec le compte employé que j'ai créé.

Cela viendrait il du fait que lors de la création du mot de passe du compte employé j'utilise également des caractères non alpha numérique :

            $employee = new EmployeeCore();
 			$password = Tools::passwdGen(8, 'RANDOM');
            $cryptedPwd=$this->encryptPwd($password);
            $employee->passwd=$cryptedPwd;

 	public static function encryptPwd($plaintextPassword){    
            try {
                /** @var \PrestaShop\PrestaShop\Core\Crypto\Hashing $crypto */
                $crypto = ServiceLocator::get('\\PrestaShop\\PrestaShop\\Core\\Crypto\\Hashing');
            } catch (CoreException $e) {
                dump($e); // if error dump feel free to modify as you need
            }
            $hash_password = $crypto->hash($plaintextPassword);
            return $hash_password;
    }

Merci pour vos conseils.

Guilhem

Edited by Guilhem (see edit history)
Link to comment
Share on other sites

Bonjour, a pririo cela n'a rien a voir avec le mot de passe.

Comme l'a expliqué oivangine il s'agissait du nom du tab qui n'était pas correct.

Après correction l'employé créé peut se loguer.

En revanche, il a des droits sur des pages d'un tab que j'ai créé dans le back office et impossible d'y accéder même si les permissions sont correctes...

Quelqu'un a t il déjà eu à régler ce genre de problème ?

Merci beaucoup.

Bien cordialement,

Guilhem

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...