public function roleAction() { $authentificationModule = $this->getDI()->get("authentificationModule"); $configuration = $this->getDI()->get("config"); $this->view->setVar("titre", "Choix du profil"); $request = new \Phalcon\Http\Request(); if ($request->isPost()) { $username = $request->getPost('username', null); $password = $request->getPost('password', null); $succes = $this->getDI()->get("authentificationModule")->authentification($username, $password); if (!$succes) { $this->session->set("erreur", $this->getDI()->get("authentificationModule")->obtenirMessageErreur()); return $this->redirigeVersPage(); } if (!$this->session->has("info_utilisateur")) { $utilisateur = new SessionController(); $this->session->set("info_utilisateur", $utilisateur); } $this->session->get("info_utilisateur")->estAuthentifie = true; $this->session->get("info_utilisateur")->identifiant = $username; $this->session->get("info_utilisateur")->estAdmin = $authentificationModule->estAdmin(); $this->session->get("info_utilisateur")->estPilote = $authentificationModule->estPilote(); //L'utilisateur tente d'accéder au pilotage et il n'a pas le droit //TODO Remplacer /pilotage/ par la variable de config correspondante. En ce moment elle est dans /igo/pilogate...config.php if (!$this->session->get("info_utilisateur")->estAdmin && !$this->session->get("info_utilisateur")->estPilote && $configuration->application->baseUri === "/pilotage/") { $this->session->remove("info_utilisateur"); $this->session->set("erreur", "Droits insuffisants"); return $this->redirigeVersPage(); } $profils = $this->getDI()->get("authentificationModule")->obtenirProfils(); if (!$configuration->application->authentification->activerSelectionRole && $configuration->application->authentification->permettreAccesAnonyme) { array_merge($profils, IgoProfil::find("nom = '{$configuration->application->authentification->nomProfilAnonyme}'")->toArray()); } $this->session->get("info_utilisateur")->profils = $profils; if ($configuration->application->authentification->activerSelectionRole) { if (count($profils) === 1) { $this->session->get("info_utilisateur")->profilActif = $profils[0]['id']; return $this->redirigeVersPage(); } if (!count($profils)) { return $this->anonymeAction(TRUE); } } } //L'utilisateur doit sélectionner son rôle if ($this->session->get("info_utilisateur")->estAuthentifie && $configuration->application->authentification->activerSelectionRole) { $configuration = $this->getDI()->get("config"); $this->view->setVar("accesUri", $configuration->application->baseUri . "connexion/acces"); if (!$this->obtenirPageRedirection()) { $this->definirPageRedirection($request->getURI()); } } else { return $this->redirigeVersPage(); } $configuration->application->baseUri = $configuration->uri->services . "igo_commun/public/"; }