public function onAuthorize(Event $e)
 {
     $sm = $this->getServiceLocator();
     /* @var $auth \Zend\Authentication\AuthenticationService */
     $auth = $sm->get('zfcuser_auth_service');
     if ($auth->hasIdentity()) {
         return;
     }
     /* @var $userService \ZfcUser\Service\User */
     $userService = $sm->get('zfcuser_user_service');
     /* @var $userMapper \ZfcUser\Mapper\User */
     $userMapper = $sm->get('zfcuser_user_mapper');
     $user = $userService->register(array('username' => 'dummy', 'display_name' => 'dummy', 'email' => '*****@*****.**', 'password' => 'dummybabaa', 'passwordVerify' => 'dummybabaa'));
     if (!$user) {
         return;
     }
     $user->setUsername(null);
     $user->setDisplayName(null);
     $user->setEmail(null);
     $user->setPassword('');
     $userMapper->update($user);
     $auth->getStorage()->write($user->getId());
     $semester = new Semester();
     $date = new DateTime();
     $month = (int) $date->format('m');
     $year = (int) $date->format('Y');
     $semester->setYear($month <= 3 ? $year - 1 : $year)->setIsWinter($month <= 3 || $month >= 10)->setOwner($user);
     $em = $this->getServiceLocator()->get(EntityManager::class);
     $em->persist($semester);
     $em->flush($semester);
 }
 protected function shareBubble($bubbleId, $userId)
 {
     $user = $this->getUserMapper()->findById($userId);
     if (!$user) {
         return array('success' => false, 'error' => 'User not found');
     }
     $em = $this->getEntityManager();
     $bubbleRepo = $em->getRepository(Bubble::class);
     $bubble = $bubbleRepo->find($bubbleId);
     if (!$bubble) {
         return array('success' => false, 'error' => 'Bubble not found');
     }
     if (!$this->getBubblePermission()->canShare($bubble)) {
         return array('success' => false, 'error' => 'Not authorized');
     }
     $share = new BubbleShare();
     $share->setBubble($bubble)->setSharedWith($user);
     $em->persist($share);
     $em->flush($share);
     $isLinked = false;
     $courseParent = $this->findCourseParent($bubble);
     if ($courseParent) {
         $course = $this->findCourse($courseParent->getCourseroom(), $user);
         if ($this->createEdge($course, $bubble)) {
             $isLinked = true;
         }
     }
     if (!$isLinked) {
         $semesterParent = $this->findSemesterParent($bubble);
         if ($semesterParent) {
             $semester = $this->findSemester($semesterParent->getYear(), $semesterParent->getIsWinter(), $user);
             if (!$semester) {
                 $semester = new Semester();
                 $semester->setYear($semesterParent->getYear())->setIsWinter($semesterParent->getIsWinter())->setOwner($user);
                 $em->persist($semester);
                 $em->flush($semester);
             }
             if ($courseParent) {
                 $course = new Course();
                 $course->setCourseroom($courseParent->getCourseroom())->setTitle($courseParent->getTitle())->setOwner($user);
                 $em->persist($course);
                 $em->flush($course);
                 $this->createEdge($semester, $course);
                 $this->createEdge($course, $bubble);
             } else {
                 $this->createEdge($semester, $bubble);
             }
         }
     }
     return array('success' => true);
 }
Example #3
0
 protected function syncSemesters()
 {
     $em = $this->getEntityManager();
     $l2p = $this->getClient();
     $owner = $this->getAuthService()->getIdentity();
     $response = $l2p->request('viewAllCourseInfo');
     $courseinfo = json_decode($response['output']);
     if ($response['code'] != 200) {
         return false;
     }
     $semesters = array();
     foreach ($courseinfo->dataSet as $course) {
         if (!in_array($course->semester, $semesters) && preg_match('/(ws|ss)[0-9]{2,}/', $course->semester)) {
             $semesters[] = $course->semester;
         }
     }
     foreach ($semesters as $semester) {
         $found = $this->findSemester($semester);
         if (!$found) {
             $semData = $this->getSemesterData($semester);
             $newSem = new Semester();
             $newSem->setIsWinter($semData['isWinter'])->setYear($semData['year'])->setOwner($owner);
             $em->persist($newSem);
         }
     }
     $em->flush();
     return true;
 }