src/Controller/PublicController.php line 99

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Component\HttpFoundation\RequestStack;
  9. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  10. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  11. // Controller
  12. use App\Controller\EclacController;
  13. // Classes
  14. use App\Entity\Parametre;
  15. use App\Entity\Fichier;
  16. #[Route('/')]
  17. class PublicController extends AbstractController
  18. {
  19. private bool $app_public;
  20. public function __construct(
  21. private EntityManagerInterface $entityManager,
  22. private RequestStack $requestStack,
  23. private EclacController $EclacController,
  24. private AuthenticationUtils $authenticationUtils,
  25. private ParameterBagInterface $params,
  26. ) {
  27. $this->app_public = $params->get('app_public');
  28. if ($this->requestStack->getCurrentRequest() != null) {
  29. if ($this->requestStack->getCurrentRequest()->hasSession()) {
  30. $session = $this->requestStack->getSession();
  31. $parametre = $this->entityManager->getRepository(Parametre::class)->findOneBy(array(
  32. 'idparametre' => 1
  33. ));
  34. $session->set('parametre', $parametre);
  35. $importsEnErreur = $this->entityManager->getRepository(Fichier::class)->findBy(array(
  36. "statutimport" => 3,
  37. ));
  38. if (!empty($importsEnErreur)) {
  39. $session->set('importEnErreur', true);
  40. } else {
  41. $session->set('importEnErreur', false);
  42. }
  43. }
  44. }
  45. }
  46. // Page index
  47. #[Route('/', name: 'app_public_index', methods: ['GET'])]
  48. public function index(Request $request): Response
  49. {
  50. if($this->app_public) {
  51. $parametre = $this->entityManager->getRepository(Parametre::class)->findOneBy(array('idparametre' => 1));
  52. $request->getSession()->set('parametre', $parametre);
  53. $contents = [
  54. 'Onglet1' => [
  55. 'nom' => 'Référentiel<br>de&nbsp;compétences',
  56. 'class' => 'nav-link nav-link-menu',
  57. 'current' => '',
  58. 'href' => '/referentiel-competences',
  59. ],
  60. 'Onglet2' => [
  61. 'nom' => 'Concept<br>Stratégie',
  62. 'class' => 'nav-link nav-link-menu',
  63. 'current' => '',
  64. 'href' => '/concept-strategie',
  65. ],
  66. 'Onglet3' => [
  67. 'nom' => 'Évaluation<br>Accompagnement',
  68. 'class' => 'nav-link nav-link-menu',
  69. 'current' => '',
  70. 'href' => '/evaluation-accompagnement',
  71. ],
  72. 'Onglet4' => [
  73. 'nom' => 'Certification<br>Individualisation',
  74. 'class' => 'nav-link nav-link-menu',
  75. 'current' => '',
  76. 'href' => '/certification-individualisation',
  77. ],
  78. ];
  79. return $this->render('public/index.html.twig', [
  80. 'contents' => $contents,
  81. ]);
  82. } else {
  83. return $this->redirectToRoute('app_public_login', [], Response::HTTP_SEE_OTHER);
  84. }
  85. }
  86. // Permet de se connecter à l'application
  87. #[Route('/form_login', name: 'app_public_login', methods: ['GET', 'POST'])]
  88. public function login(Request $request): Response
  89. {
  90. if($this->EclacController->security->getUser()) {
  91. return $this->redirectToRoute('app_eclac_choix-espace', ['switch' => 'no-switch'], Response::HTTP_SEE_OTHER);
  92. }
  93. $parametre = $this->entityManager->getRepository(Parametre::class)->findOneBy(array('idparametre' => 1));
  94. $request->getSession()->set('parametre', $parametre);
  95. $error = $this->authenticationUtils->getLastAuthenticationError();
  96. $lastUsername = $this->authenticationUtils->getLastUsername();
  97. $contents = [];
  98. if($this->app_public) {
  99. $contents = [
  100. 'Onglet1' => [
  101. 'nom' => 'Référentiel<br>de&nbsp;compétences',
  102. 'class' => 'nav-link nav-link-menu',
  103. 'current' => '',
  104. 'href' => '/referentiel-competences',
  105. ],
  106. 'Onglet2' => [
  107. 'nom' => 'Concept<br>Stratégie',
  108. 'class' => 'nav-link nav-link-menu',
  109. 'current' => '',
  110. 'href' => '/concept-strategie',
  111. ],
  112. 'Onglet3' => [
  113. 'nom' => 'Évaluation<br>Accompagnement',
  114. 'class' => 'nav-link nav-link-menu',
  115. 'current' => '',
  116. 'href' => '/evaluation-accompagnement',
  117. ],
  118. 'Onglet4' => [
  119. 'nom' => 'Certification<br>Individualisation',
  120. 'class' => 'nav-link nav-link-menu',
  121. 'current' => '',
  122. 'href' => '/certification-individualisation',
  123. ],
  124. ];
  125. }
  126. return $this->render('public/login.html.twig', [
  127. 'contents' => $contents,
  128. 'last_username' => $lastUsername,
  129. 'error' => $error,
  130. ]);
  131. }
  132. // Page referentiel-competences
  133. #[Route('/referentiel-competences', name: 'app_public_referentiel-competences', methods: ['GET', 'POST'])]
  134. public function referentielCompetences(Request $request): Response
  135. {
  136. if($this->app_public) {
  137. $contents = [
  138. 'Onglet1' => [
  139. 'nom' => 'Référentiel<br>de&nbsp;compétences',
  140. 'class' => 'nav-link nav-link-menu btn-nav-active',
  141. 'current' => '',
  142. 'href' => '/referentiel-competences',
  143. ],
  144. 'Onglet2' => [
  145. 'nom' => 'Concept<br>Stratégie',
  146. 'class' => 'nav-link nav-link-menu',
  147. 'current' => '',
  148. 'href' => '/concept-strategie',
  149. ],
  150. 'Onglet3' => [
  151. 'nom' => 'Évaluation<br>Accompagnement',
  152. 'class' => 'nav-link nav-link-menu',
  153. 'current' => '',
  154. 'href' => '/evaluation-accompagnement',
  155. ],
  156. 'Onglet4' => [
  157. 'nom' => 'Certification<br>Individualisation',
  158. 'class' => 'nav-link nav-link-menu',
  159. 'current' => '',
  160. 'href' => '/certification-individualisation',
  161. ],
  162. ];
  163. return $this->render('public/referentiel-competences.html.twig', [
  164. 'contents' => $contents,
  165. ]);
  166. } else {
  167. return $this->redirectToRoute('app_public_login', [], Response::HTTP_SEE_OTHER);
  168. }
  169. }
  170. // Page concept-strategie
  171. #[Route('/concept-strategie', name: 'app_public_concept-strategie', methods: ['GET', 'POST'])]
  172. public function conceptStrategie(Request $request): Response
  173. {
  174. if($this->app_public) {
  175. $contents = [
  176. 'Onglet1' => [
  177. 'nom' => 'Référentiel<br>de&nbsp;compétences',
  178. 'class' => 'nav-link nav-link-menu',
  179. 'current' => '',
  180. 'href' => '/referentiel-competences',
  181. ],
  182. 'Onglet2' => [
  183. 'nom' => 'Concept<br>Stratégie',
  184. 'class' => 'nav-link nav-link-menu btn-nav-active',
  185. 'current' => '',
  186. 'href' => '/concept-strategie',
  187. ],
  188. 'Onglet3' => [
  189. 'nom' => 'Évaluation<br>Accompagnement',
  190. 'class' => 'nav-link nav-link-menu',
  191. 'current' => '',
  192. 'href' => '/evaluation-accompagnement',
  193. ],
  194. 'Onglet4' => [
  195. 'nom' => 'Certification<br>Individualisation',
  196. 'class' => 'nav-link nav-link-menu',
  197. 'current' => '',
  198. 'href' => '/certification-individualisation',
  199. ],
  200. ];
  201. return $this->render('public/concept-strategie.html.twig', [
  202. 'contents' => $contents,
  203. ]);
  204. } else {
  205. return $this->redirectToRoute('app_public_login', [], Response::HTTP_SEE_OTHER);
  206. }
  207. }
  208. // Page evaluation-accompagnement
  209. #[Route('/evaluation-accompagnement', name: 'app_public_evaluation-accompagnement', methods: ['GET', 'POST'])]
  210. public function evaluationAccompagnement(Request $request): Response
  211. {
  212. if($this->app_public) {
  213. $contents = [
  214. 'Onglet1' => [
  215. 'nom' => 'Référentiel<br>de&nbsp;compétences',
  216. 'class' => 'nav-link nav-link-menu',
  217. 'current' => '',
  218. 'href' => '/referentiel-competences',
  219. ],
  220. 'Onglet2' => [
  221. 'nom' => 'Concept<br>Stratégie',
  222. 'class' => 'nav-link nav-link-menu',
  223. 'current' => '',
  224. 'href' => '/concept-strategie',
  225. ],
  226. 'Onglet3' => [
  227. 'nom' => 'Évaluation<br>Accompagnement',
  228. 'class' => 'nav-link nav-link-menu btn-nav-active',
  229. 'current' => '',
  230. 'href' => '/evaluation-accompagnement',
  231. ],
  232. 'Onglet4' => [
  233. 'nom' => 'Certification<br>Individualisation',
  234. 'class' => 'nav-link nav-link-menu',
  235. 'current' => '',
  236. 'href' => '/certification-individualisation',
  237. ],
  238. ];
  239. return $this->render('public/evaluation-accompagnement.html.twig', [
  240. 'contents' => $contents,
  241. ]);
  242. } else {
  243. return $this->redirectToRoute('app_public_login', [], Response::HTTP_SEE_OTHER);
  244. }
  245. }
  246. // Page certification-individualisation
  247. #[Route('/certification-individualisation', name: 'app_public_certification-individualisation', methods: ['GET', 'POST'])]
  248. public function certificationIndividualisation(Request $request): Response
  249. {
  250. if($this->app_public) {
  251. $contents = [
  252. 'Onglet1' => [
  253. 'nom' => 'Référentiel<br>de&nbsp;compétences',
  254. 'class' => 'nav-link nav-link-menu',
  255. 'current' => '',
  256. 'href' => '/referentiel-competences',
  257. ],
  258. 'Onglet2' => [
  259. 'nom' => 'Concept<br>Stratégie',
  260. 'class' => 'nav-link nav-link-menu',
  261. 'current' => '',
  262. 'href' => '/concept-strategie',
  263. ],
  264. 'Onglet3' => [
  265. 'nom' => 'Évaluation<br>Accompagnement',
  266. 'class' => 'nav-link nav-link-menu',
  267. 'current' => '',
  268. 'href' => '/evaluation-accompagnement',
  269. ],
  270. 'Onglet4' => [
  271. 'nom' => 'Certification<br>Individualisation',
  272. 'class' => 'nav-link nav-link-menu btn-nav-active',
  273. 'current' => '',
  274. 'href' => '/certification-individualisation',
  275. ],
  276. ];
  277. return $this->render('public/certification-individualisation.html.twig', [
  278. 'contents' => $contents,
  279. ]);
  280. } else {
  281. return $this->redirectToRoute('app_public_login', [], Response::HTTP_SEE_OTHER);
  282. }
  283. }
  284. }