Jump to content

[Résolut] Connexion impossible au BO et FO ps1.6


Recommended Posts

Bonjour et merci d'avance pour votre aide.

Suite à des manipulation sur un sous domaine pour des tests afin d'éventuellement migrer en 1.7, le site sur le domaine principal ne fonctionne plus.

Avant de faire plus de dégâts je préfère poser la question ici si quelqu'un à une idée de comment résoudre le problème.

Merci d'avoir pris le temps de me lire.

Les erreurs lorsque je tente d'accéder à la page de connexion de mon BO :

No access reference in table module_access for id_module 70.
at line 2538 in file classes/module/Module.php

2533.                 self::$cache_permissions[$employee->id_profile][$row['id_module']]['uninstall'] = $row['uninstall'];
2534.             }
2535.         }
2536. 
2537.         if (!isset(self::$cache_permissions[$employee->id_profile][$id_module])) {
2538.             throw new PrestaShopException('No access reference in table module_access for id_module '.$id_module.'.');
2539.         }
2540. 
2541.         return (bool)self::$cache_permissions[$employee->id_profile][$id_module][$variable];
2542.     }
2543. 

ModuleCore::getPermissionStatic - [line 3244 - classes/controller/AdminController.php] - [2 Arguments]

3239.         $all_modules = Module::getModulesOnDisk(true);
3240.         $this->modules_list = array();
3241.         foreach ($all_modules as $module) {
3242.             $perm = true;
3243.             if ($module->id) {
3244.                 $perm &= Module::getPermissionStatic($module->id, 'configure');
3245.             } else {
3246.                 $id_admin_module = Tab::getIdFromClassName('AdminModules');
3247.                 $access = Profile::getProfileAccess($this->context->employee->id_profile, $id_admin_module);
3248.                 if (!$access['edit']) {
3249.                     $perm &= false;

AdminControllerCore->getModulesList - [line 2283 - classes/controller/AdminController.php] - [1 Arguments]

2278.                     }
2279.                 }
2280.             }
2281.         }
2282. 
2283.         if ($this->getModulesList($this->filter_modules_list)) {
2284.             $tmp = array();
2285.             foreach ($this->modules_list as $key => $module) {
2286.                 if ($module->active) {
2287.                     $tmp[] = $module;
2288.                     unset($this->modules_list[$key]);

AdminControllerCore->renderModulesList - [line 2023 - classes/controller/AdminController.php]

2018.             }
2019.             $this->content .= $this->renderView();
2020.         } elseif ($this->display == 'details') {
2021.             $this->content .= $this->renderDetails();
2022.         } elseif (!$this->ajax) {
2023.             $this->content .= $this->renderModulesList();
2024.             $this->content .= $this->renderKpis();
2025.             $this->content .= $this->renderList();
2026.             $this->content .= $this->renderOptions();
2027. 
2028.             // if we have to display the required fields form

AdminControllerCore->initContent - [line 137 - controllers/admin/AdminLoginController.php]

132.             $this->context->smarty->assign('password', $password);
133.         }
134. 
135.         $this->setMedia();
136.         $this->initHeader();
137.         parent::initContent();
138.         $this->initFooter();
139. 
140.         //force to disable modals
141.         $this->context->smarty->assign('modals', null);
142.     }

AdminLoginControllerCore->initContent - [line 189 - classes/controller/Controller.php]

184.             if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
185.                 $this->initHeader();
186.             }
187. 
188.             if ($this->viewAccess()) {
189.                 $this->initContent();
190.             } else {
191.                 $this->errors[] = Tools::displayError('Access denied.');
192.             }
193. 
194.             if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className))) {

ControllerCore->run - [line 367 - classes/Dispatcher.php]

362.             if (isset($params_hook_action_dispatcher)) {
363.                 Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
364.             }
365. 
366.             // Running controller
367.             $controller->run();
368.         } catch (PrestaShopException $e) {
369.             $e->displayMessage();
370.         }
371.     }
372. 

DispatcherCore->dispatch - [line 58 - admin/index.php]

53. if (!isset($_REQUEST['controller']) && isset($_REQUEST['tab'])) {
54.     $_REQUEST['controller'] = strtolower($_REQUEST['tab']);
55. }
56. 
57. // Prepare and trigger admin dispatcher
58. Dispatcher::getInstance()->dispatch();

 

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

il y a 9 minutes, Eolia a dit :

Pas sur qu'il y ait un rapport, là le problème vient d'un module (ID 70, allez voir en BDD lequel c'est chez vous) qui n'a pas d'accès employé défini.

@EoliaMerci pour votre réponse.

C'est le module autoupgrade 4.6.0

Le site fonctionnait parfaitement avant ma bidouille. Je ne pensais pas que le fait de faire une maj dans un sous domaine pouvait avoir une incidence sur le domaine principal.

Link to comment
Share on other sites

Ajoutez dans la table ps_module_access cette ligne

INSERT INTO `ps_module_access` (`id_profile`, `id_module`, `view`, `configure`)
VALUES ('1', '70', '1', '1');

J'ai mis 1 pour l'id_profile qui normalement correspond à l'ID du profil SuperAdmin

Link to comment
Share on other sites

il y a 18 minutes, Eolia a dit :

Ajoutez dans la table ps_module_access cette ligne


INSERT INTO `ps_module_access` (`id_profile`, `id_module`, `view`, `configure`)
VALUES ('1', '70', '1', '1');

J'ai mis 1 pour l'id_profile qui normalement correspond à l'ID du profil SuperAdmin

@Eolia

J'ai l'erreur suivante :

 

Erreur

Requête SQL :

 

INSERT INTO `ps_module_access` (`id_profile`, `id_module`, `view`, `configure`)
VALUES ('1', '70', '1', '1')

 

MySQL a répondu : Documentation

#1054 - Champ 'id_module' inconnu dans field list

Link to comment
Share on other sites

@Eolia

Effectivement cette colonne n'est pas (plus) présente dans ma Base de donnée.

@P i l o u

il y a 39 minutes, P i l o u a dit :

Peut-être une idée: n'aurais-tu pas utilisé la même base de données pour tes tests ?

Car dans la 1.7, il n'y a plus de champ id_module dans la table ps_module_access.

Merci pour ta réponse.

Alors j'ai :

-Créé une nouvelle base de donnée liée au sous domaine. 

-Glissé les fichier ps 1.7.5.1 dans le répertoire

-Récupéré de ps 1.6 et remplacé settings.inc.php et les dossier img, download et upload

-Lancé le script mon-site/install/upgrade/upgrade.php

Apparemment en récupérant les fichier de la version 1.6, l'ancienne base de donnée s'est liée au nouveau site.

Que dois-je faire pour réparer ? J'ai une sauvegarde récente de la BD.

Link to comment
Share on other sites

Supprimez toutes les tables de la bdd

Importez votre sauvegarde

 

Pour info, pour ce genre de tests on se met sur un clone de la boutique.

Il y a 2 heures, Wiz a dit :

Je ne pensais pas que le fait de faire une maj dans un sous domaine pouvait avoir une incidence sur le domaine principal.

 

il y a 9 minutes, Wiz a dit :

-Récupéré de ps 1.6 et remplacé settings.inc.php et les dossier img, download et upload

Vous n'avez pas juste fait une maj sur un sous-domaine donc, vous avez mis à jour la bdd en prod^^

Link to comment
Share on other sites

J'ai fait tout ça sur un sous domaine sans penser qu'il y aurai une incidence sur le site principale. C'est surement ce qui arrive quand on sait pas trop ce qu'on fait.

Je vais donc importer ma sauvegarde mais je ferais ça demain. 

Un grand merci à vous pour le temps consacré à mon soucis.

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...