Example #1
0
 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/";
 }