Exemplo n.º 1
0
 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);
 }