public function __construct(CourseRegistrationQueue $queue)
 {
     $course = $queue->getCourse();
     $user = $queue->getUser();
     $details = [];
     $details['userId'] = $user->getId();
     $details['username'] = $user->getUsername();
     $details['firsName'] = $user->getFirstName();
     $details['lastName'] = $user->getLastName();
     $details['courseId'] = $course->getId();
     $details['courseTitle'] = $course->getTitle();
     $details['courseCode'] = $course->getCode();
     parent::__construct(self::ACTION, $details, $user);
 }
 public function __construct(CourseRegistrationQueue $queue)
 {
     $course = $queue->getCourse();
     $user = $queue->getUser();
     $organizationAdmin = $queue->getOrganizationAdmin();
     $details = [];
     $details['userId'] = $user->getId();
     $details['username'] = $user->getUsername();
     $details['firsName'] = $user->getFirstName();
     $details['lastName'] = $user->getLastName();
     $details['courseId'] = $course->getId();
     $details['courseTitle'] = $course->getTitle();
     $details['courseCode'] = $course->getCode();
     $details['organizationAdminId'] = $organizationAdmin->getId();
     $details['organizationAdminUsername'] = $organizationAdmin->getUsername();
     $details['organizationAdminFirsName'] = $organizationAdmin->getFirstName();
     $details['organizationAdminLastName'] = $organizationAdmin->getLastName();
     $details['organizationValidationDate'] = $queue->getOrganizationValidationDate();
     parent::__construct(self::ACTION, $details, $user);
 }
Пример #3
0
 /**
  * @EXT\Route(
  *     "cursus/course/queue/{queue}/user/transfer",
  *     name="claro_cursus_course_queued_user_transfer",
  *     options={"expose"=true}
  * )
  * @EXT\ParamConverter("authenticatedUser", options={"authenticatedUser" = true})
  * @EXT\Template("ClarolineCursusBundle:Course:courseQueuedUserTransferModalForm.html.twig")
  */
 public function courseQueuedUserTransferAction(CourseRegistrationQueue $queue)
 {
     $course = $queue->getCourse();
     $form = $this->formFactory->create(new CourseQueuedUserTransferType($course));
     $form->handleRequest($this->request);
     if ($form->isValid()) {
         $session = $form->get('session')->getData();
         $results = $this->cursusManager->transferQueuedUserToSession($queue, $session);
         $results['queueId'] = $queue->getId();
         return new JsonResponse($results, 200);
     } else {
         return ['form' => $form->createView(), 'queue' => $queue];
     }
 }
Пример #4
0
 public function transferQueuedUserToSession(CourseRegistrationQueue $queue, CourseSession $session)
 {
     $user = $queue->getUser();
     $this->om->startFlushSuite();
     $this->registerUsersToSession($session, array($user), 0);
     $this->om->remove($queue);
     $this->om->endFlushSuite();
 }
 /**
  * @EXT\Route(
  *     "course/registration/queue/{queue}/user/validate",
  *     name="claro_cursus_course_registration_queue_user_validate",
  *     options={"expose"=true}
  * )
  * @EXT\ParamConverter("authenticatedUser", options={"authenticatedUser" = true})
  */
 public function courseRegistrationQueueUserValidateAction(User $authenticatedUser, CourseRegistrationQueue $queue)
 {
     $user = $queue->getUser();
     if ($authenticatedUser->getId() !== $user->getId()) {
         throw new AccessDeniedException();
     }
     $this->cursusManager->validateUserCourseRegistrationQueue($queue);
     $course = $queue->getCourse();
     $sessionFlashBag = $this->session->getFlashBag();
     $sessionFlashBag->add('success', $this->translator->trans('course_request_confirmation_success', ['%courseTitle%' => $course->getTitle()], 'cursus'));
     return new RedirectResponse($this->router->generate('claro_desktop_open'));
 }
Пример #6
0
 public function validateCourseQueue(CourseRegistrationQueue $queue)
 {
     $user = $queue->getUser();
     $course = $queue->getCourse();
     $queueDatas = ['type' => 'none', 'id' => $queue->getId(), 'courseId' => $course->getId(), 'applicationDate' => $queue->getApplicationDate(), 'userId' => $user->getId(), 'username' => $user->getUsername(), 'firstName' => $user->getFirstName(), 'lastName' => $user->getLastName(), 'queueStatus' => $queue->getStatus()];
     $canValidate = $this->canValidateCourseQueue($queue);
     if ($canValidate) {
         $status = $queue->getStatus();
         $isAdmin = $this->authorization->isGranted('ROLE_ADMIN');
         if ($status !== CourseRegistrationQueue::WAITING) {
             $authenticatedUser = $this->tokenStorage->getToken()->getUser();
             $isWaitingOrganization = $status & CourseRegistrationQueue::WAITING_ORGANIZATION;
             $isWaitingValidator = $status & CourseRegistrationQueue::WAITING_VALIDATOR;
             if ($isAdmin) {
                 $status = 0;
                 $queue->setStatus($status);
                 $now = new \DateTime();
                 if ($isWaitingOrganization) {
                     $queue->setOrganizationValidationDate($now);
                     $queue->setOrganizationAdmin($authenticatedUser);
                     $event = new LogCourseQueueOrganizationValidateEvent($queue);
                     $this->eventDispatcher->dispatch('log', $event);
                 }
                 if ($isWaitingValidator) {
                     $queue->setValidatorValidationDate($now);
                     $queue->setValidator($authenticatedUser);
                     $event = new LogCourseQueueValidatorValidateEvent($queue);
                     $this->eventDispatcher->dispatch('log', $event);
                 }
                 $this->persistCourseRegistrationQueue($queue);
                 $queueDatas['type'] = 'admin_validated';
             } elseif ($isWaitingOrganization) {
                 $status -= CourseRegistrationQueue::WAITING_ORGANIZATION;
                 $queue->setStatus($status);
                 $queue->setOrganizationValidationDate(new \DateTime());
                 $queue->setOrganizationAdmin($authenticatedUser);
                 $this->persistCourseRegistrationQueue($queue);
                 $event = new LogCourseQueueOrganizationValidateEvent($queue);
                 $this->eventDispatcher->dispatch('log', $event);
                 $queueDatas['type'] = 'organization_validated';
                 $queueDatas['queueStatus'] = $queue->getStatus();
                 $queueDatas['organizationValidationDate'] = $queue->getValidatorValidationDate();
                 $queueDatas['organizationAdminId'] = $authenticatedUser->getId();
                 $queueDatas['organizationAdminUsername'] = $authenticatedUser->getUsername();
                 $queueDatas['organizationAdminFirstName'] = $authenticatedUser->getFirstName();
                 $queueDatas['organizationAdminLastName'] = $authenticatedUser->getLastName();
             } elseif ($isWaitingValidator) {
                 $status -= CourseRegistrationQueue::WAITING_VALIDATOR;
                 $queue->setStatus($status);
                 $queue->setValidatorValidationDate(new \DateTime());
                 $queue->setValidator($authenticatedUser);
                 $this->persistCourseRegistrationQueue($queue);
                 $event = new LogCourseQueueValidatorValidateEvent($queue);
                 $this->eventDispatcher->dispatch('log', $event);
                 $queueDatas['type'] = 'validator_validated';
                 $queueDatas['queueStatus'] = $queue->getStatus();
                 $queueDatas['validatorValidationDate'] = $queue->getValidatorValidationDate();
                 $queueDatas['validatorId'] = $authenticatedUser->getId();
                 $queueDatas['validatorUsername'] = $authenticatedUser->getUsername();
                 $queueDatas['validatorFirstName'] = $authenticatedUser->getFirstName();
                 $queueDatas['validatorLastName'] = $authenticatedUser->getLastName();
             }
         }
         if ($queue->getStatus() === 0) {
             $queue->setStatus(CourseRegistrationQueue::WAITING);
             $this->persistCourseRegistrationQueue($queue);
             $queueDatas['queueStatus'] = $queue->getStatus();
         }
     } else {
         $queueDatas['type'] = 'not_authorized';
     }
     return $queueDatas;
 }
Пример #7
0
 public function courseQueue(Course $course, User $user)
 {
     $now = new \DateTime();
     $status = 0;
     $validators = $course->getValidators();
     if ($course->getUserValidation()) {
         $status += CourseRegistrationQueue::WAITING_USER;
     }
     if ($course->getOrganizationValidation()) {
         $status += CourseRegistrationQueue::WAITING_ORGANIZATION;
     }
     if (count($validators) > 0) {
         $status += CourseRegistrationQueue::WAITING_VALIDATOR;
     } elseif ($course->getRegistrationValidation()) {
         $status += CourseRegistrationQueue::WAITING;
     }
     $courseQueue = new CourseRegistrationQueue();
     $courseQueue->setUser($user);
     $courseQueue->setCourse($course);
     $courseQueue->setApplicationDate($now);
     $courseQueue->setStatus($status);
     $this->om->persist($courseQueue);
     return $courseQueue;
 }