Damien Forner Posted April 30 Share Posted April 30 (edited) Bonjour, Après migration d'un prestashop 1.7 vers un 8.2, nous avons de multiples problèmes qu'il est étrange que nous ayons à corriger. Le dernier en date : Je me connecte et me place sur ma liste de commande (page "historique-commandes") : je vois les commandes associées à mon profil Je clique sur le lien "me déconnecter" en haut du site La page de liste des commandes est toujours affichée (c'est déjà étrange) mais en plus toutes les commandes de tous les clients qui n'ont pas de compte sont alors visibles... Vraiment pas idéal pour la confidentialité. D'ailleurs, la page "mon-compte" et tous ses liens reste ouvrable, par appel de son url, alors que je ne suis pas connecté. Est ce un problème rencontré par certain(e)s et y'a t-il un contournement possible sans modifier le code prestashop ? Edited April 30 by Damien Forner (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted April 30 Share Posted April 30 Vous devriez remonter le pb sur Github comme bug majeur car c'est une faille de sécurité sans parler du rgpd. https://github.com/PrestaShop/PrestaShop/issues Link to comment Share on other sites More sharing options...
Damien Forner Posted April 30 Author Share Posted April 30 oui, vous avez raison. Nous avons énormément de souci après migration. Là, je complète par exemple le fichier controllers/front/HistoryController.php avec le code if (!$this->context->customer->isLogged()) { Tools::redirect('index.php?controller=authentication'); } dans la méthode "init content". C'est incroyable d'avoir à faire ça, il me semble... Link to comment Share on other sites More sharing options...
doekia Posted April 30 Share Posted April 30 Normalement (anciennement) c'était géré directement par le controller front si il possédait la propriété auth = true. if($this->auth && !$this->context->customer->isLogged($this->guestAllowed)) { Tools::redirect('index.php?controller=authentication' .($this->authRedirection ? '&back='.$this->authRedirection : '')); } Link to comment Share on other sites More sharing options...
Damien Forner Posted April 30 Author Share Posted April 30 Merci @doekia . Tu me conseilles donc de mettre le code joint plutot que le mien dans les différents controller ? Parce que par exemple, la page "mon compte" et la page "reduction" ca fait pareil : je vois plein de coupons clients alors que je ne suis pas connecté ! Link to comment Share on other sites More sharing options...
Prestashop Addict Posted April 30 Share Posted April 30 C'est peut-être un problème de cookie, essayez en nav privée voir si cela le fait. Link to comment Share on other sites More sharing options...
doekia Posted April 30 Share Posted April 30 Non le code est dans le FrontController et chaque controleur "privé" ont la propriété $this->auth à true Exemple class HistoryControllerCore extends FrontController { public $ssl = true; public $auth = true; public $php_self = 'history'; public $authRedirection = 'history'; Donc tu ne devrais pas avoir a rajouter ton test normalement Link to comment Share on other sites More sharing options...
Damien Forner Posted April 30 Author Share Posted April 30 je n'avais pas compris, désolé. Effectivement, les propriétés publiques présentes dans "controllers/front/HistoryController.php " sont bien : /** @var bool */ public $auth = true; /** @var string */ public $php_self = 'history'; /** @var string */ public $authRedirection = 'history'; /** @var bool */ public $ssl = true; /** @var OrderPresenter|null */ public $order_presenter; Mais malgré ce, y'a comme un os ! Link to comment Share on other sites More sharing options...
Damien Forner Posted April 30 Author Share Posted April 30 ainsi, le code de la méthode "initcontent" de ce même fichier est juste : /** * Assign template vars related to page content. * * @see FrontController::initContent() */ public function initContent() { if (Configuration::isCatalogMode()) { Tools::redirect('index.php'); } if ($this->order_presenter === null) { $this->order_presenter = new OrderPresenter(); } if (Tools::isSubmit('slowvalidation')) { $this->warning[] = $this->trans('If you have just placed an order, it may take a few minutes for it to be validated. Please refresh this page if your order is missing.', [], 'Shop.Notifications.Warning'); } $this->context->smarty->assign([ 'orders' => $this->getTemplateVarOrders(), ]); parent::initContent(); $this->setTemplate('customer/history'); } Il ne tient donc pas compte de la propriété auth... C'est pourtant le fichier de base de prestashop 8.2.1 que j'ai downloadé depuis le site internet prestashop ! Link to comment Share on other sites More sharing options...
Eolia Posted April 30 Share Posted April 30 le code est toujours présent dans Classes/FrontController.php, fonction init() https://github.com/PrestaShop/PrestaShop/blob/develop/classes/controller/FrontController.php#L277 // Redirect user to login page, if the controller requires authentication if ($this->auth && !$this->context->customer->isLogged()) { Tools::redirect($this->context->link->getPageLink( 'authentication', null, null, $this->authRedirection ? ['back' => $this->authRedirection] : null )); } Vous n'auriez pas un override de ce fichier ? Link to comment Share on other sites More sharing options...
Damien Forner Posted May 5 Author Share Posted May 5 (edited) pardon pour le délai de ma réponse et merci pour votre post. Si override il y a, il est à l'insu de mon plein grès ! Quand on télécharge la version 8.2.1 à partir de ce lien (c'est ce que nous avons fait) : https://github.com/PrestaShop/PrestaShop/releases/download/8.2.1/prestashop_8.2.1.zip On a une version pour laquelle il n'y a pas le code qui va bien (par exemple pour le discountcontroller.php) Je fais une erreur en téléchargeant cette version de prestashop ou en téléchargeant depuis cet endroit ? Nous n'avons pas eu que cette erreur d'ailleurs et avons eu à corriger tout un tas de trucs qu'il était vraiment étrange d'avoir à corriger tellement les bugs étaient faciles à obtenir (ex : l'ajout au panier deffectueux) Edited May 5 by Damien Forner (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now