X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/1d3181f07e807c246e1f8d627871871b9d2d0c5a..2884b5c8b4514b0e1c0dd0449db2af5be32382b6:/Controller/DefaultController.php

diff --git a/Controller/DefaultController.php b/Controller/DefaultController.php
index 215d8c6..54250c9 100644
--- a/Controller/DefaultController.php
+++ b/Controller/DefaultController.php
@@ -20,7 +20,6 @@ use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
 use Symfony\Component\Mime\Address;
-use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;
 use Symfony\Component\Security\Core\Exception\AccessDeniedException;
 
 use Rapsys\AirBundle\Entity\Dance;
@@ -28,6 +27,7 @@ use Rapsys\AirBundle\Entity\Location;
 use Rapsys\AirBundle\Entity\Session;
 use Rapsys\AirBundle\Entity\Snippet;
 use Rapsys\AirBundle\Entity\User;
+use Rapsys\AirBundle\Token\AnonymousToken;
 
 /**
  * {@inheritdoc}
@@ -43,7 +43,7 @@ class DefaultController extends AbstractController {
 	 */
 	public function about(Request $request): Response {
 		//Set page
-		$this->context['title'] = $this->translator->trans('About');
+		$this->context['title']['page'] = $this->translator->trans('About');
 
 		//Set description
 		$this->context['description'] = $this->translator->trans('Libre Air about');
@@ -75,7 +75,7 @@ class DefaultController extends AbstractController {
 	 */
 	public function contact(Request $request): Response {
 		//Set page
-		$this->context['title'] = $this->translator->trans('Contact');
+		$this->context['title']['page'] = $this->translator->trans('Contact');
 
 		//Set description
 		$this->context['description'] = $this->translator->trans('Contact Libre Air');
@@ -93,7 +93,7 @@ class DefaultController extends AbstractController {
 		$data = [];
 
 		//With user
-		if ($user = $this->getUser()) {
+		if ($user = $this->security->getUser()) {
 			//Set data
 			$data = [
 				'name' => $user->getRecipientName(),
@@ -103,8 +103,8 @@ class DefaultController extends AbstractController {
 
 		//Create the form according to the FormType created previously.
 		//And give the proper parameters
-		$form = $this->createForm('Rapsys\AirBundle\Form\ContactType', $data, [
-			'action' => $this->generateUrl('rapsys_air_contact'),
+		$form = $this->factory->create('Rapsys\AirBundle\Form\ContactType', $data, [
+			'action' => $this->generateUrl('rapsysair_contact'),
 			'method' => 'POST'
 		]);
 
@@ -121,7 +121,7 @@ class DefaultController extends AbstractController {
 					//Set sender
 					->from(new Address($data['mail'], $data['name']))
 					//Set recipient
-					->to(new Address($this->context['contact']['mail'], $this->context['contact']['title']))
+					->to(new Address($this->context['contact']['address'], $this->context['contact']['name']))
 					//Set subject
 					->subject($data['subject'])
 
@@ -149,10 +149,10 @@ class DefaultController extends AbstractController {
 				} catch(TransportExceptionInterface $e) {
 					if ($message = $e->getMessage()) {
 						//Add error message mail unreachable
-						$form->get('mail')->addError(new FormError($this->translator->trans('Unable to contact: %mail%: %message%', ['%mail%' => $this->context['contact']['mail'], '%message%' => $this->translator->trans($message)])));
+						$form->get('mail')->addError(new FormError($this->translator->trans('Unable to contact: %mail%: %message%', ['%mail%' => $this->context['contact']['address'], '%message%' => $this->translator->trans($message)])));
 					} else {
 						//Add error message mail unreachable
-						$form->get('mail')->addError(new FormError($this->translator->trans('Unable to contact: %mail%', ['%mail%' => $this->context['contact']['mail']])));
+						$form->get('mail')->addError(new FormError($this->translator->trans('Unable to contact: %mail%', ['%mail%' => $this->context['contact']['address']])));
 					}
 				}
 			}
@@ -265,7 +265,7 @@ class DefaultController extends AbstractController {
 		$dances = implode($this->translator->trans(' and '), array_filter(array_merge([implode(', ', array_slice($dances, 0, -1))], array_slice($dances, -1)), 'strlen'));
 
 		//Set title
-		$this->context['title'] = $this->translator->trans('%dances% %cities%', ['%dances%' => $dances, '%cities%' => $cities]);
+		$this->context['title']['page'] = $this->translator->trans('%dances% %cities%', ['%dances%' => $dances, '%cities%' => $cities]);
 
 		//Set description
 		//TODO: handle french translation when city start with a A, change à in en !
@@ -289,7 +289,7 @@ class DefaultController extends AbstractController {
 	 */
 	public function organizerRegulation(Request $request): Response {
 		//Set page
-		$this->context['title'] = $this->translator->trans('Organizer regulation');
+		$this->context['title']['page'] = $this->translator->trans('Organizer regulation');
 
 		//Set description
 		$this->context['description'] = $this->translator->trans('Libre Air organizer regulation');
@@ -322,7 +322,7 @@ class DefaultController extends AbstractController {
 	 */
 	public function termsOfService(Request $request): Response {
 		//Set page
-		$this->context['title'] = $this->translator->trans('Terms of service');
+		$this->context['title']['page'] = $this->translator->trans('Terms of service');
 
 		//Set description
 		$this->context['description'] = $this->translator->trans('Libre Air terms of service');
@@ -355,7 +355,7 @@ class DefaultController extends AbstractController {
 	 */
 	public function frequentlyAskedQuestions(Request $request): Response {
 		//Set page
-		$this->context['title'] = $this->translator->trans('Frequently asked questions');
+		$this->context['title']['page'] = $this->translator->trans('Frequently asked questions');
 
 		//Set description
 		$this->context['description'] = $this->translator->trans('Libre Air frequently asked questions');
@@ -391,18 +391,24 @@ class DefaultController extends AbstractController {
 	public function userIndex(Request $request): Response {
 		//With admin role
 		if ($this->checker->isGranted('ROLE_ADMIN')) {
+			//Set title
+			$this->context['title']['page'] = $this->translator->trans('Libre Air user list');
+
 			//Set section
-			$section = $this->translator->trans('Libre Air users');
+			$this->context['title']['section'] = $this->translator->trans('User');
 
 			//Set description
-			$this->context['description'] = $this->translator->trans('Libre Air user list');
+			$this->context['description'] = $this->translator->trans('Lists Libre air users');
 		//Without admin role
 		} else {
+			//Set title
+			$this->context['title']['page'] = $this->translator->trans('Libre Air organizer list');
+
 			//Set section
-			$section = $this->translator->trans('Libre Air organizers');
+			$this->context['title']['section'] = $this->translator->trans('Organizer');
 
 			//Set description
-			$this->context['description'] = $this->translator->trans('Libre Air organizers list');
+			$this->context['description'] = $this->translator->trans('Lists Libre air organizers');
 		}
 
 		//Set keywords
@@ -413,9 +419,6 @@ class DefaultController extends AbstractController {
 			$this->translator->trans('Libre Air')
 		];
 
-		//Set title
-		$title = $this->translator->trans($this->config['site']['title']).' - '.$section;
-
 		//Fetch users
 		$users = $this->doctrine->getRepository(User::class)->findIndexByGroupId();
 
@@ -430,7 +433,7 @@ class DefaultController extends AbstractController {
 		}
 
 		//Render the view
-		return $this->render('@RapsysAir/user/index.html.twig', ['title' => $title, 'section' => $section]+$this->context);
+		return $this->render('@RapsysAir/user/index.html.twig', $this->context);
 	}
 
 	/**
@@ -451,7 +454,7 @@ class DefaultController extends AbstractController {
 		}
 
 		//Create token
-		$token = new AnonymousToken('', $this->context['user']['mail'], $this->context['user']['roles']);
+		$token = new AnonymousToken($this->context['user']['roles']);
 
 		//Prevent access when not admin, user is not guest and not currently logged user
 		if (!($isAdmin = $this->checker->isGranted('ROLE_ADMIN')) && !($isGuest = $this->decision->decide($token, ['ROLE_GUEST']))) {
@@ -462,7 +465,7 @@ class DefaultController extends AbstractController {
 		//With invalid user slug
 		if ($this->context['user']['slug'] !== $user) {
 			//Redirect to cleaned url
-			return $this->redirectToRoute('rapsys_air_user_view', ['id' => $id, 'user' => $this->context['user']['slug']]);
+			return $this->redirectToRoute('rapsysair_user_view', ['id' => $id, 'user' => $this->context['user']['slug']]);
 		}
 
 		//Fetch calendar
@@ -593,7 +596,10 @@ class DefaultController extends AbstractController {
 		$ins = implode($this->translator->trans(' and '), array_filter(array_merge([implode(', ', array_slice($ins, 0, -1))], array_slice($ins, -1)), 'strlen'));
 
 		//Set title
-		$this->context['title'] = $this->translator->trans('%pseudonym% organizer', ['%pseudonym%' => $this->context['user']['pseudonym']]);
+		$this->context['title']['page'] = $this->translator->trans('%pseudonym% organizer', ['%pseudonym%' => $this->context['user']['pseudonym']]);
+
+		//Set section
+		$this->context['title']['section'] = $this->translator->trans('User');
 
 		//With locations
 		if (!empty($locations)) {
@@ -613,7 +619,7 @@ class DefaultController extends AbstractController {
 
 		//Create snippet forms for role_guest
 		//TODO: optimize this call
-		if ($isAdmin || $isGuest && $this->getUser() && $this->context['user']['id'] == $this->getUser()->getId()) {
+		if ($isAdmin || $isGuest && $this->security->getUser() && $this->context['user']['id'] == $this->security->getUser()->getId()) {
 			//Fetch all user snippet
 			$snippets = $this->doctrine->getRepository(Snippet::class)->findByUserIdLocaleIndexByLocationId($id, $this->locale);
 
@@ -629,16 +635,7 @@ class DefaultController extends AbstractController {
 				//Without existing snippet
 				} else {
 					//Init snippet
-					$current = new Snippet();
-
-					//Set default locale
-					$current->setLocale($this->locale);
-
-					//Set default user
-					$current->setUser($user);
-
-					//Set default location
-					$current->setLocation($this->doctrine->getRepository(Location::class)->findOneById($location['id']));
+					$current = new Snippet($this->locale, $this->doctrine->getRepository(Location::class)->findOneById($location['id']), $user);
 				}
 
 				//Create SnippetType form
@@ -670,7 +667,7 @@ class DefaultController extends AbstractController {
 					$this->addFlash('notice', $this->translator->trans('Snippet for %user% %location% updated', ['%location%' => $location['at'], '%user%' => $this->context['user']['pseudonym']]));
 
 					//Redirect to cleaned url
-					return $this->redirectToRoute('rapsys_air_user_view', ['id' => $id, 'user' => $this->context['user']['slug']]);
+					return $this->redirectToRoute('rapsysair_user_view', ['id' => $id, 'user' => $this->context['user']['slug']]);
 				}
 
 				//Add form to context
@@ -721,7 +718,7 @@ class DefaultController extends AbstractController {
 							$this->addFlash('notice', $this->translator->trans('Image for %user% %location% deleted', ['%location%' => $location['at'], '%user%' => $this->context['user']['pseudonym']]));
 
 							//Redirect to cleaned url
-							return $this->redirectToRoute('rapsys_air_user_view', ['id' => $id, 'user' => $this->context['user']['slug']]);
+							return $this->redirectToRoute('rapsysair_user_view', ['id' => $id, 'user' => $this->context['user']['slug']]);
 						}
 					}
 
@@ -761,7 +758,7 @@ class DefaultController extends AbstractController {
 						$this->addFlash('notice', $this->translator->trans('Image for %user% %location% updated', ['%location%' => $location['at'], '%user%' => $this->context['user']['pseudonym']]));
 
 						//Redirect to cleaned url
-						return $this->redirectToRoute('rapsys_air_user_view', ['id' => $id, 'user' => $this->context['user']['slug']]);
+						return $this->redirectToRoute('rapsysair_user_view', ['id' => $id, 'user' => $this->context['user']['slug']]);
 					}
 				}