예제 #1
0
 /**
  * @param string $attribute
  * @param Session $session
  * @param User $user
  * @return bool
  */
 protected function isGranted($attribute, $session, $user = null)
 {
     // make sure there is a user object (i.e. that the user is logged in)
     if (!$user instanceof UserInterface) {
         return false;
     }
     // Checks if the current user was set up
     $course = $session->getCurrentCourse();
     if ($course == false) {
         return false;
     }
     $authChecker = $this->container->get('security.authorization_checker');
     // Admins have access to everything
     if ($authChecker->isGranted('ROLE_ADMIN')) {
         // return true;
     }
     if (!$session->isActive()) {
         return false;
     }
     switch ($attribute) {
         case self::VIEW:
             if (!$session->hasUserInCourse($user, $course)) {
                 $user->addRole('ROLE_CURRENT_SESSION_COURSE_STUDENT');
                 return true;
             }
             break;
         case self::EDIT:
         case self::DELETE:
             if (!$session->hasCoachInCourseWithStatus($user, $course)) {
                 $user->addRole('ROLE_CURRENT_SESSION_COURSE_TEACHER');
                 return true;
             }
             break;
     }
     dump("You dont have access to this session!!");
     return false;
 }
예제 #2
0
 /**
  * @param $status
  * @param User $user
  * @param Course $course
  * @param Session $session
  */
 private function addUserInCourse($status, User $user, Course $course, Session $session)
 {
     if ($session->isActive() && $user->getIsActive() && $course->isActive()) {
         if ($session->hasCourse($course)) {
             switch ($status) {
                 case Session::DRH:
                     if ($user->hasRole('ROLE_RRHH')) {
                         $session->addUserInSession(Session::DRH, $user);
                     }
                     break;
                 case Session::STUDENT:
                     $session->addUserInSession(Session::STUDENT, $user);
                     $session->addUserInCourse(Session::STUDENT, $user, $course);
                     break;
                 case Session::COACH:
                     if ($user->hasRole('ROLE_TEACHER')) {
                         $session->addUserInCourse(Session::COACH, $user, $course);
                     }
                     break;
             }
         }
     }
 }