X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/bf7340106f67f4bd1e22bf1f831b39673257fdec..15edeaf613270f3abdcbfc3dec9cac36b0d09a59:/Controller/SessionController.php?ds=sidebyside diff --git a/Controller/SessionController.php b/Controller/SessionController.php index db556dc..b30d79e 100644 --- a/Controller/SessionController.php +++ b/Controller/SessionController.php @@ -47,7 +47,7 @@ class SessionController extends AbstractController { $this->context['cities'] = $this->doctrine->getRepository(Location::class)->findCitiesAsArray($this->period); //Add calendar - $this->context['calendar'] = $this->doctrine->getRepository(Session::class)->findAllByPeriodAsCalendarArray($this->period, !$this->isGranted('IS_AUTHENTICATED_REMEMBERED'), null, null, 1); + $this->context['calendar'] = $this->doctrine->getRepository(Session::class)->findAllByPeriodAsCalendarArray($this->period, !$this->checker->isGranted('IS_AUTHENTICATED_REMEMBERED'), null, null, 1); //Add dances $this->context['dances'] = $this->doctrine->getRepository(Dance::class)->findNamesAsArray(); @@ -59,7 +59,7 @@ class SessionController extends AbstractController { $response = new Response(); //With logged user - if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED')) { + if ($this->checker->isGranted('IS_AUTHENTICATED_REMEMBERED')) { //Set last modified $response->setLastModified(new \DateTime('-1 year')); @@ -246,7 +246,7 @@ class SessionController extends AbstractController { $response = new Response(); //With logged user - if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED')) { + if ($this->checker->isGranted('IS_AUTHENTICATED_REMEMBERED')) { //Set last modified $response->setLastModified(new \DateTime('-1 year')); @@ -418,10 +418,27 @@ class SessionController extends AbstractController { ]+$this->context['facebook']; //Create application form for role_guest - if ($this->isGranted('ROLE_GUEST')) { + if ($this->checker->isGranted('ROLE_GUEST')) { //Set now $now = new \DateTime('now'); + //Default favorites and dances + $danceFavorites = $dances = []; + //Default dance + $danceDefault = null; + + //With admin + if ($this->checker->isGranted('ROLE_ADMIN')) { + //Get favorites dances + $danceFavorites = $this->doctrine->getRepository(Dance::class)->findByUserId($this->getUser()->getId()); + + //Get dances + $dances = $this->doctrine->getRepository(Dance::class)->findAllIndexed(); + + //Set dance default + $danceDefault = !empty($this->context['session']['application'])?$dances[$this->context['session']['application']['dance']['id']]:null; + } + //Create SessionType form //TODO: move to named form ??? $sessionForm = $this->createForm('Rapsys\AirBundle\Form\SessionType', null, [ @@ -430,7 +447,16 @@ class SessionController extends AbstractController { //Set the form attribute 'attr' => [ 'class' => 'col' ], //Set admin - 'admin' => $this->isGranted('ROLE_ADMIN'), + 'admin' => $this->checker->isGranted('ROLE_ADMIN'), + //Set dance choices + 'dance_choices' => $dances, + //Set dance default + 'dance_default' => $danceDefault, + //Set dance favorites + 'dance_favorites' => $danceFavorites, + //Set to session slot or evening by default + //XXX: default to Evening (3) + 'slot_default' => $this->doctrine->getRepository(Slot::class)->findOneById($this->context['session']['slot']['id']??3), //Set default user to current 'user' => $this->getUser()->getId(), //Set date @@ -440,15 +466,15 @@ class SessionController extends AbstractController { //Set length 'length' => $this->context['session']['length'], //Set raincancel - 'raincancel' => ($this->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id']) && $this->context['session']['rainfall'] >= 2, + 'raincancel' => ($this->checker->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id']) && $this->context['session']['rainfall'] >= 2, //Set cancel - 'cancel' => $this->isGranted('ROLE_ADMIN') || in_array($this->getUser()->getId(), explode("\n", $this->context['session']['sau_id'])), + 'cancel' => $this->checker->isGranted('ROLE_ADMIN') || in_array($this->getUser()->getId(), explode("\n", $this->context['session']['sau_id'])), //Set modify - 'modify' => $this->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id'] && $this->context['session']['stop'] >= $now && $this->isGranted('ROLE_REGULAR'), + 'modify' => $this->checker->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id'] && $this->context['session']['stop'] >= $now && $this->checker->isGranted('ROLE_REGULAR'), //Set move - 'move' => $this->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id'] && $this->context['session']['stop'] >= $now && $this->isGranted('ROLE_SENIOR'), + 'move' => $this->checker->isGranted('ROLE_ADMIN') || !empty($this->context['session']['application']['user']['id']) && $this->getUser()->getId() == $this->context['session']['application']['user']['id'] && $this->context['session']['stop'] >= $now && $this->checker->isGranted('ROLE_SENIOR'), //Set attribute - 'attribute' => $this->isGranted('ROLE_ADMIN') && $this->context['session']['locked'] === null, + 'attribute' => $this->checker->isGranted('ROLE_ADMIN') && $this->context['session']['locked'] === null, //Set session 'session' => $this->context['session']['id'] ]); @@ -468,7 +494,7 @@ class SessionController extends AbstractController { $userObject = $this->getUser(); //Replace with requested user for admin - if ($this->isGranted('ROLE_ADMIN') && !empty($data['user'])) { + if ($this->checker->isGranted('ROLE_ADMIN') && !empty($data['user'])) { $userObject = $this->doctrine->getRepository(User::class)->findOneById($data['user']); } @@ -491,7 +517,7 @@ class SessionController extends AbstractController { ]; //With raincancel and application and (rainfall or admin) - if ($action['raincancel'] && ($application = $sessionObject->getApplication()) && ($sessionObject->getRainfall() >= 2 || $this->isGranted('ROLE_ADMIN'))) { + if ($action['raincancel'] && ($application = $sessionObject->getApplication()) && ($sessionObject->getRainfall() >= 2 || $this->checker->isGranted('ROLE_ADMIN'))) { //Cancel application at start minus one day $application->setCanceled($canceled); @@ -523,7 +549,19 @@ class SessionController extends AbstractController { //With modify } elseif ($action['modify']) { //With admin - if ($this->isGranted('ROLE_ADMIN')) { + if ($this->checker->isGranted('ROLE_ADMIN')) { + //Get application + $application = $this->doctrine->getRepository(Application::class)->findOneBySessionUser($sessionObject, $userObject); + + //Set dance + $application->setDance($data['dance']); + + //Queue session save + $this->manager->persist($application); + + //Set slot + $sessionObject->setSlot($data['slot']); + //Set date $sessionObject->setDate($data['date']); }