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