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 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;
 }