src/ControllerSessionManager/DefaultController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\ControllerSessionManager;
  3. use App\Exception\NeedRedirectionException;
  4. use App\Service\GestionLanguages;
  5. use App\Service\InfoForLoginSIMAX;
  6. use NOUT\Bundle\NOUTOnlineBundle\Service\DynamicConfigurationLoader;
  7. use NOUT\Bundle\NOUTOnlineBundle\Service\NOUTClient;
  8. use NOUT\Bundle\NOUTOnlineBundle\Service\NOUTClientIHM;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  13. class DefaultController extends AbstractController
  14. {
  15.     /**
  16.      * Route de génération du formulaire de connexion
  17.      * Comme c'est pour l'identification, on n'utilise pas de formBuilder, uniquement un template twig avec le formulaire dedans
  18.      *
  19.      * @Route("/login/",
  20.      *     name="login",
  21.      *     options={"expose"=true}
  22.      * )
  23.      */
  24.     public function loginAction(Request $requestDynamicConfigurationLoader $dynamicConfigurationInfoForLoginSIMAX $infoForLoginSIMAXGestionLanguages $gestionLanguages)
  25.     {
  26.         try {
  27.             $aParamTwig $this->_aGetCommonParamForTwig($request$dynamicConfiguration$infoForLoginSIMAX$gestionLanguages);
  28.         }
  29.         catch (NeedRedirectionException $e)
  30.         {
  31.             //le message de l'exception contient le lien de redirection
  32.             return $this->redirect($e->getMessage());
  33.         }
  34.         $logoutFrom $request->getSession()->get('logout_from'false);
  35.         return $this->render('WebSite/Security/login.html.twig', [
  36.                 // last username entered by the user
  37.                 'check_route_name'          => 'session_check_login',
  38.                 'sso'                       => $this->getParameter('site.sso'),
  39.                 'logout_from'                => $logoutFrom,
  40.          ]+$aParamTwig);
  41.     }
  42.     /**
  43.      * Route de génération du formulaire de connexion
  44.      * Comme c'est pour l'identification, on n'utilise pas de formBuilder, uniquement un template twig avec le formulaire dedans
  45.      *
  46.      * @Route("/anonyme/",
  47.      *     name="anonyme",
  48.      *     options={"expose"=true}
  49.      * )
  50.      */
  51.     public function anonymeAction(Request $requestAuthenticationUtils $authenticationUtils)
  52.     {
  53.         $error $authenticationUtils->getLastAuthenticationError();
  54.         return $this->render('WebSite/Security/anonyme.html.twig', array(
  55.             // last username entered by the user
  56.             'error'                     => $error,
  57.             'extranet'                  => true,
  58.             'customization'             => $this->getParameter('custom.login'),
  59.             'display_version'           => $this->getParameter('site.display')["version"],
  60.             'is_simaxstarter'           => $this->getParameter('site.config')['simaxstarter'],
  61.         ));
  62.     }
  63.     /**
  64.      *  Route de génération du formulaire de connexion
  65.      *
  66.      * @Route("/",
  67.      *     name="session_index"
  68.      * )
  69.      */
  70.     public function indexAction()
  71.     {
  72.         return $this->forward('App\ControllerSessionManager\DefaultController::login');
  73.     }
  74.     /**
  75.      * Route de génération du formulaire de connexion
  76.      * Comme c'est pour l'identification, on n'utilise pas de formBuilder, uniquement un template twig avec le formulaire dedans
  77.      *
  78.      * @Route("/user_info",
  79.      *     name="user_info",
  80.      *     options={"expose"=true}
  81.      * )
  82.      */
  83.     public function userInfoAction(Request $requestNOUTClient $clientGestionLanguages $clGestionLangage)
  84.     {
  85.         $login $request->get('login');
  86.         try {
  87.             $clIntraExists $client->clUserExists($login);
  88.             $oRet = new \stdClass();
  89.             $oRet->with_configuration $clIntraExists->bWithConfiguration;
  90.             $oRet->language_code $clIntraExists->nCodeLangue;
  91.             return new JsonResponse($oRet);
  92.         }
  93.         catch (\Exception $e)
  94.         {
  95.             return new JsonResponse(new \stdClass());
  96.         }
  97.     }
  98.     /**
  99.      * Route de génération du formulaire de connexion
  100.      * Comme c'est pour l'identification, on n'utilise pas de formBuilder, uniquement un template twig avec le formulaire dedans
  101.      *
  102.      * @Route("/execute/{idaction}",
  103.      *     name="execute_action",
  104.      *     requirements={"idaction" = "\d+"},
  105.      *     options={"expose"=true}
  106.      * )
  107.      */
  108.     public function executeAction(Request $requestNOUTClientIHM $client)
  109.     {
  110.         try {
  111.             $retAction $client->oExecuteWithoutIHM([
  112.                                                          'ID' => $request->get('idaction'),
  113.                                                      ]);
  114.         }
  115.         catch (\Exception $e) {
  116.             return new JsonResponse(array('message' => $e->getMessage()), 500);
  117.         }
  118.         if ($retAction->bIsFault()){
  119.             return new JsonResponse(array('message' => $retAction->getMessError()), 500);
  120.         }
  121.         return new JsonResponse(array('message' => $retAction->sGetReport()));
  122.     }
  123. }