Nous ne répondons seulement qu'aux sujets dont l'auteur a complété sa signature [Lire]


Bug édition permission [RESOLU]

Inscrire dans ce forum tous les types de problèmes que vous rencontrez avec OpenCart

Bug édition permission [RESOLU]

Messagepar snickers » 02 Sep 2010, 14:53

Bonjour,

Voilà j'ai un petit bug et je tenais à le partager. Je précise que je suis en 1.48b.

Admettons que je sois un admin faisant partit du groupe démonstration, je n'ai accès au Back Office que en lecture donc je ne peux que visualiser mais rien modifier sinon j'obtiens un joli message d'erreur.

En essayant de modifier mes propres droits (en lecture de user/user et user/user_permission en même temps) dans système->utilisateurs->groupe utilisateurs, j'obtiens un joli message d'erreur, normal.
Mais j'ai aussi en haut de la page ce message :
Code: Tout sélectionner
Notice: Undefined index: modify in D:\www\ecommerce\opencart\admin\controller\user\user_permission.php on line 368


et dans la box en face de Droits en Ècriture,
ce message d'erreur pour chaque droit :
Code: Tout sélectionner
Warning: in_array() [function.in-array]: Wrong datatype for second argument in D:\www\ecommerce\opencart\admin\view\template\user\user_group_form.tpl on line 47  catalog/category


Je me penche dessus et j'essaye de vous donner un correctif propre
Dernière édition par snickers le 02 Sep 2010, 15:38, édité 2 fois.
snickers
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 8
Inscription: 01 Sep 2010, 10:34

Re: Bug édition permission

Messagepar snickers » 02 Sep 2010, 15:09

Alors si j'ai bien compris ça n'arrive que lorsque tout les droits en écriture sont vides (donc surement la même chose pour la lecture).

Il ne reçoit pas de données POST contenant comme clef 'modify', du coup lorsque dans le controlleur on essaye d'accéder à ces données, il ne trouve pas l'index 'modify' d'où l'erreur. On remplit donc :
Code: Tout sélectionner
$this->data['modify']
avec rien du tout

Donc du côté du template, lorsqu'on appel la fonction :
Code: Tout sélectionner
in_array

et qu'on lui envoie $modify qui ne contient rien
il affiche alors la deuxième erreur, car on envoie à cette fonction un type invalide.

Je vais essayer de trouver une parade.
snickers
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 8
Inscription: 01 Sep 2010, 10:34

Re: Bug édition permission

Messagepar snickers » 02 Sep 2010, 15:20

Bon j'ai trouvé !

Dans le fichier "/admin/controller/user/user_permission.php" vers la ligne 368 donc,
chercher :
Code: Tout sélectionner
if (isset($this->request->post['permission'])) {
   $this->data['modify'] = $this->request->post['permission']['modify'];
} elseif (isset($user_group_info['permission']['modify'])) {
   $this->data['modify'] = $user_group_info['permission']['modify'];
} else {
        $this->data['modify'] = array();
}


à remplacer par :
Code: Tout sélectionner
if (isset($this->request->post['permission'])) {
   if (in_array('modify', $this->request->post['permission'])) {
      $this->data['modify'] = $this->request->post['permission']['modify'];
   }
   else {$this->data['modify'] = array();}
} elseif (isset($user_group_info['permission']['modify'])) {
   $this->data['modify'] = $user_group_info['permission']['modify'];
} else {
   $this->data['modify'] = array();
}
snickers
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 8
Inscription: 01 Sep 2010, 10:34


Retourner vers Rapports de Problèmes

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron