florent33 Posted February 26, 2013 Share Posted February 26, 2013 (edited) Bonjour à tous, Lorsque l'on active le multi boutiques sur prestashop, chaque boutique dispose de ses propres données. Par exemple, les clients d'une boutique x ne sont pas visibles par une boutique y. De même pour les commandes, les factures ... Bien que ces données ne soient pas directement visibles par la boutique y, je me suis rendu compte d'un bug permettant d'y accéder et de les modifier. Pour y parvenir, il suffit tout simplement de modifier l'url ... Par exemple pour voir la commande numéro 1 appartenant à la boutique x à partir du BO de la boutique y il suffit de modifier l'url comme ceci : index.php?controller=AdminOrders&id_order=1&vieworder&token= De même pour accéder à un client d'id 1 appartenant à la boutique x à partir du BO de la boutique y : index.php?controller=AdminCustomers&id_customer=1&viewcustomer&token= Idem pour les adresses clients : index.php?controller=AdminAddresses&id_address=1&updateaddress&token= J'ai pensé à placer ce bout de code dans la fonction renderForm de chaque controllers : (exemple pour le controller des adresses) $idShopAddress = Db::getInstance()->getValue(' SELECT id_shop FROM `'._DB_PREFIX_.'address` a JOIN `'._DB_PREFIX_.'customer` c on c.id_customer = a.id_customer WHERE id_address='.(int)Tools::getValue('id_address') ); if ((int)$idShopAddress != (int)Shop::getContextShopID()) die(); Le problème c'est que cela limite seulement l'affichage... On peut encore interagir avec les données en modifiant de nouveau l'url. Par exemple pour supprimer l'adresse du client d'id 1 de la boutique x à partir du BO de la boutique y il suffit de saisir : index.php?controller=AdminAddresses&id_address=1&deleteaddress&token= Je ne crois pas que ce soit une solution de placer mon bout de code dans toutes les fonctions. J'ai levé un bug sur le bug tracker de prestashop en espérant qu'il soit pris en considération : PSCFV-8002 En attendant, si quelqu'un a une solution, je suis preneur Merci d'avance pour votre aide. Edited February 26, 2013 by florent33 (see edit history) Link to comment Share on other sites More sharing options...
Broceliande Posted February 27, 2013 Share Posted February 27, 2013 Interessant ! Tu as testé toutefois si la chose était possible en n'étant pas superadmin ? Ca vaudrait quand même le coup de vérifier en changeant de profil parce qu'en mode superadmin, ça me parait pas réellement être un bug, ni une faille de sécurité. Si seul le super admin peut interagir en changeant les données get ça n'est pas vraiment problématique... Mais il pourrait aussi être logique de devoir spécifier l'id shop pour les manipulations de ce type j'en conviens. Link to comment Share on other sites More sharing options...
florent33 Posted February 27, 2013 Author Share Posted February 27, 2013 Interessant ! Tu as testé toutefois si la chose était possible en n'étant pas superadmin ? Ca vaudrait quand même le coup de vérifier en changeant de profil parce qu'en mode superadmin, ça me parait pas réellement être un bug, ni une faille de sécurité. Si seul le super admin peut interagir en changeant les données get ça n'est pas vraiment problématique... Mais il pourrait aussi être logique de devoir spécifier l'id shop pour les manipulations de ce type j'en conviens. Oui j'ai testé avec un profil différent du superadmin Link to comment Share on other sites More sharing options...
florent33 Posted February 27, 2013 Author Share Posted February 27, 2013 Nouveau bug décrivant mieux le problème : PSCFV-8022 Link to comment Share on other sites More sharing options...
florent33 Posted February 27, 2013 Author Share Posted February 27, 2013 Je viens de penser ... Il serait sans doute pas mal de créer une fonction verifyAccess dans tous les controllers admin (ex: AdminAddressesController.php) contenant mon bout de code cité plus haut : $idShopAddress = Db::getInstance()->getValue(' SELECT id_shop FROM `'._DB_PREFIX_.'address` a JOIN `'._DB_PREFIX_.'customer` c on c.id_customer = a.id_customer WHERE id_address='.(int)Tools::getValue('id_address') ); if ((int)$idShopAddress != (int)Shop::getContextShopID()) die(); et appeler cette méthode à partir de AdminController.php dans les fonctions : processDelete(), processSave(), processAdd(), processUpdate() ... A TESTER Link to comment Share on other sites More sharing options...
Dev On Web Posted February 27, 2013 Share Posted February 27, 2013 Bonjour, Piste intéressante en effet ! Cela peut poser quelques soucis de confidentialité dans certains cas de multi-boutique du coup. Bien vu ! J'espère que la Presta Team va corriger ce manque rapidement. Link to comment Share on other sites More sharing options...
florent33 Posted February 27, 2013 Author Share Posted February 27, 2013 Toujours à propos du partage de données mais sans modification de l'url ... Tous les retours produits, les bons de livraison et les avoirs sont visibles par toutes les boutiques. Il serait intéressant là aussi que les boutiques aient accès qu'à leurs propres données comme c'est déjà fait pour les factures par exemple. Dans le SAV, seuls les mails envoyés aux adresses inscrites dans la section "Clients > Contacts" de la boutique devraient apparaitre. Un employé ne devrait pas pouvoir créer des règles panier pour d'autres boutiques mais seulement pour la sienne. Et pour finir, lors de la création d'une boutique, on a la possibilité de copier les transporteurs... En faisant ce choix, les transporteurs sont bien copiés mais les associations entre les produits et les transporteurs ne sont pas gardées. 1 Link to comment Share on other sites More sharing options...
bdj Posted March 22, 2013 Share Posted March 22, 2013 (edited) Bonjour, Entièrement d'accord avec toi Florian. D'ailleurs, les clients ne sont en effet pas partagés entre les multi-boutiques sauf a un endroit : dans Clients > Groupes > Clients > Voir J'espère vraiment que Prestashop va réellement dissocier les données des multi-boutiques lors de la prochaine version car cela pose pas mal de problèmes. En attendant que Prestashop trouve une solution est-ce que l'un d'entre vous aurait une astuce pour que les règles panier d'un shop ne soient pas visibles par les employés d'un autre shop ? Edited March 22, 2013 by bdj (see edit history) Link to comment Share on other sites More sharing options...
florent33 Posted March 27, 2013 Author Share Posted March 27, 2013 La nouvelle version de prestashop est sortie récemment et elle ne semble pas corriger le problème. Si vous êtes intéressés par le sujet, merci de voter pour le bug à cette adresse : http://forge.prestashop.com/browse/PSCFV-8022 Link to comment Share on other sites More sharing options...
bdj Posted March 28, 2013 Share Posted March 28, 2013 Hello Florian, En effet, je n'ai pas l'impression (à la vue du changelog) que ce problème ai été corrigé. Pourtant je considère ce problème comme étant relativement important... @+ Link to comment Share on other sites More sharing options...
florent33 Posted March 29, 2013 Author Share Posted March 29, 2013 Pti up pour inviter les gens à voter pour le bug. Link to comment Share on other sites More sharing options...
florent33 Posted April 9, 2013 Author Share Posted April 9, 2013 up Link to comment Share on other sites More sharing options...
2FR3 Posted April 9, 2013 Share Posted April 9, 2013 A voté Link to comment Share on other sites More sharing options...
florent33 Posted May 21, 2013 Author Share Posted May 21, 2013 Ca va bientôt faire 3 mois que j'ai signalé le bug sur le bug tracker et aucune news de la team presta ... Link to comment Share on other sites More sharing options...
florent33 Posted June 5, 2013 Author Share Posted June 5, 2013 up Link to comment Share on other sites More sharing options...
boubou Posted June 5, 2013 Share Posted June 5, 2013 Moi je trouve que le forum, il est plus ce qu'il a été... Link to comment Share on other sites More sharing options...
florent33 Posted April 8, 2015 Author Share Posted April 8, 2015 Il y a du nouveau à propos du bug : http://forge.prestashop.com/browse/PSCSX-2077 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