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); }
/** * @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]; } }
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')); }
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; }
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; }