userHasRoleAtLeast('Utilisateur')) { * return false; * } * } * return true; * } */ /** * Displays a view * * @return void|\Cake\Network\Response * @throws \Cake\Network\Exception\NotFoundException When the view file could not * be found or \Cake\View\Exception\MissingTemplateException in debug mode. */ public function display() { // (EP 21/5/19) // On ne voit ce message que sur la page "about" // En effet, les autres pages nécessitant un login, // on est redirigé sur la page login et donc la methode login() du controleur UsersController // Du coup, il faut décommenter la ligne "exit" juste après pour voir ce message (évite la redirection). $this->myDebug("step 2: PagesController.display()"); //exit; $configuration = $this->confLabinvent; $path = func_get_args(); if ($path[0] === null) { $path[0] = ''; } $this->myDebug($path); // @todo : faire plus proprement, dans isAuthorized() // Si l'utilisateur n'est pas connecté, on le redirige vers la page login.ctp // sauf si l'action demandée est 'about' ou si le mode install est activé if (! ($this->LdapAuth->user($configuration->ldap_authenticationType)[0]) && $path[0] != 'about' && ! ($configuration->mode_install)) { return $this->redirect([ 'controller' => 'users', 'action' => 'login' ]); } $count = count($path); if (! $count) { return $this->redirect('/'); } $page = $subpage = null; if (! empty($path[0])) { $page = $path[0]; } if (! empty($path[1])) { $subpage = $path[1]; } // @todo : faire plus proprement, avec isAuthorized() if ($page == 'tools') { // Autoriser seulement à partir du role ADMIN et + // if (! $this->userHasRoleAtLeast('Administration')) { if (! $this->USER_IS_ADMIN_AT_LEAST()) return $this->redirect('/'); } if ($page == 'infos') { // Autoriser seulement SUPERADMIN if (! $this->USER_IS_SUPERADMIN()) return $this->redirect('/'); } $this->set(compact('page', 'subpage')); try { $this->render(implode('/', $path)); } catch (MissingTemplateException $e) { if (Configure::read('debug')) { throw $e; } throw new NotFoundException(); } } }