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;
use Rapsys\AirBundle\Entity\Session;
use Rapsys\AirBundle\Entity\Snippet;
use Rapsys\AirBundle\Entity\User;
+use Rapsys\AirBundle\Token\AnonymousToken;
/**
* {@inheritdoc}
/**
* The about page
*
- * @desc Display the about informations
+ * Display the about informations
*
* @param Request $request The request instance
* @return Response The rendered view
*/
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');
/**
* The contact page
*
- * @desc Send a contact mail to configured contact
+ * Send a contact mail to configured contact
*
* @param Request $request The request instance
*
*/
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');
$data = [];
//With user
- if ($user = $this->getUser()) {
+ if ($user = $this->security->getUser()) {
//Set data
$data = [
'name' => $user->getRecipientName(),
//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'
]);
//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'])
} 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']])));
}
}
}
$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 !
/**
* The organizer regulation page
*
- * @desc Display the organizer regulation policy
+ * Display the organizer regulation policy
*
* @param Request $request The request instance
* @return Response The rendered view
*/
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');
/**
* The terms of service page
*
- * @desc Display the terms of service policy
+ * Display the terms of service policy
*
* @param Request $request The request instance
* @return Response The rendered view
*/
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');
/**
* The frequently asked questions page
*
- * @desc Display the frequently asked questions
+ * Display the frequently asked questions
*
* @param Request $request The request instance
* @return Response The rendered view
*/
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');
/**
* List all users
*
- * @desc Display all user with a group listed as users
+ * Display all user with a group listed as users
*
* @param Request $request The request instance
*
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
$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();
}
//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);
}
/**
* List all sessions for the user
*
- * @desc Display all sessions for the user with an application or login form
+ * Display all sessions for the user with an application or login form
*
* @param Request $request The request instance
* @param int $id The user id
}
//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']))) {
//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
$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)) {
//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);
//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
$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
$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']]);
}
}
$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']]);
}
}