/**
  * @param User $user
  */
 protected function onSuccess(User $user)
 {
     if (!$user->getId()) {
         $this->sendEmail($user);
     }
     $this->em->persist($user);
     $this->em->flush();
 }
예제 #2
0
 public function countBugs(User $user) : int
 {
     $sql = "\n        SELECT COUNT(*) FROM ({$this->testWithWrongAnswer}) AS wrong_answer\n        LEFT JOIN ({$this->testWithRightAnswer}) AS right_anwer ON wrong_answer.id = right_anwer.id\n        WHERE right_anwer.count_answer < wrong_answer.count_answer \n        OR (wrong_answer.count_answer IS NOT NULL AND right_anwer.count_answer IS NULL)";
     $entityManager = $this->getEntityManager();
     $stmt = $entityManager->getConnection()->executeQuery($sql, [':user_id' => $user->getId()]);
     $count = $stmt->fetchColumn();
     return $count;
 }
예제 #3
0
 /**
  * @param User $user
  * @return array
  */
 public static function setData(User $user)
 {
     $document = self::$document;
     $document["id"] = $user->getId() . self::POSTFIX;
     $document["document"] = self::POSTFIX;
     $document["title"] = $user->getFullName();
     return $document;
 }
예제 #4
0
 /**
  * @param User $user
  * @param ObjectManager $em
  * @return mixed
  */
 private static function getRootDirectories(User $user, ObjectManager $em)
 {
     $queryBuilder = $em->createQueryBuilder();
     $queryBuilder->select('d')->from('AppBundle:Directory', 'd')->where('d.user = ?1 AND d.directory IS NULL')->setParameter(1, $user->getId());
     $query = $queryBuilder->getQuery();
     unset($queryBuilder);
     return $query->getResult();
 }
예제 #5
0
 /**
  * @param User $editedUser
  *
  * @return bool
  */
 private function isOtherUser(User $editedUser) : bool
 {
     /** @var User $user */
     $user = $this->tokenStorage->getToken()->getUser();
     if (is_null($user)) {
         return true;
     }
     return $user->getId() !== $editedUser->getId();
 }
 public function findByUsers(User $user, $form = false)
 {
     $query = $this->createQueryBuilder('project');
     $query->leftJoin('project.users', 'users')->where('users.id = :user_id')->setParameter('user_id', $user->getId());
     if ($form) {
         return $query;
     }
     return $query->getQuery()->getResult();
 }
예제 #7
0
 public function jsonSerialize()
 {
     $tags = array();
     if ($this->tags) {
         foreach ($this->tags as $tag) {
             $tags[] = $tag->getName();
         }
     }
     $data = array('id' => $this->id, 'title' => $this->title, 'description' => $this->description, 'image' => $this->image, 'url' => $this->url, 'user' => $this->user->getId(), 'tags' => $tags);
     return $data;
 }
예제 #8
0
 private function generateWhere($filter, User $user, $finished_test = null)
 {
     if ($filter) {
         $where = $this->_query->expr()->andX($this->_query->expr()->eq('user.id', ':user'), $filter);
     } else {
         $where = $this->_query->expr()->eq('user.id', ':user');
     }
     if ($finished_test === false) {
         $where = $this->_query->expr()->andX($where, $this->_query->expr()->isNotNull('task.currentTestId'));
     } elseif ($finished_test === true) {
         $where = $this->_query->expr()->andX($where, $this->_query->expr()->isNull('task.currentTestId'));
     }
     $this->_query->where($where)->setParameter(':user', $user->getId());
 }
 public function getWorkerSchedule(User $user, \DateTime $date)
 {
     $allTimes = [];
     $startTime = new \DateTime($date->format('Y-m-d H:i'));
     $endTime = new \DateTime($date->format('Y-m-d H:i'));
     $startTime->setTime($user->getStartTime()->format('H'), $user->getStartTime()->format('i'));
     $endTime->setTime($user->getEndTime()->format('H'), $user->getEndTime()->format('i'));
     $busyTimes = $this->em->getRepository('UserBundle:JobTime')->getTodaysWork($user->getId(), $date->format('Y-m-d'));
     while ($startTime < $endTime) {
         foreach ($busyTimes as $bTime) {
             if ($bTime['startDate']->format('Y-m-d H:i') == $startTime->format('Y-m-d H:i')) {
                 $allTimes[] = $bTime;
                 $startTime->modify('+' . $bTime['service']['time'] . 'hour');
             }
         }
         if ($startTime > $endTime) {
             break;
         }
         $allTimes[] = $startTime->format('Y-m-d H:i');
         $startTime->modify('+1hour');
     }
     return $allTimes;
 }
예제 #10
0
 public function isOwn($id)
 {
     return $this->author !== null && $this->author->getId() === $id;
 }
 /**
  * {@inheritDoc}
  */
 public function getId()
 {
     if ($this->__isInitialized__ === false) {
         return (int) parent::getId();
     }
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getId', []);
     return parent::getId();
 }
예제 #12
0
 public function isAuthor(\UserBundle\Entity\User $user = null)
 {
     return $user->getId() == $this->getUser()->getId();
 }
 /**
  * Creates a form to delete a User entity.
  *
  * @param User $user The User entity
  *
  * @return \Symfony\Component\Form\Form The form
  */
 private function createDeleteForm(User $user)
 {
     return $this->createFormBuilder()->setAction($this->generateUrl('user_delete', array('id' => $user->getId())))->setMethod('DELETE')->getForm();
 }
 public function answerStatistic(User $user, Request $request)
 {
     $sql = "\nSELECT temp1.count_r AS right_answer, temp2.count_r AS wrong_answer, temp1.time AS test_day \nFROM \n( {$this->_right} ) AS temp1 \nLEFT JOIN \n( {$this->_wrong} ) AS temp2 \nON temp1.time = temp2.time \n        \nUNION\n\nSELECT temp2.count_r AS right_answer, temp1.count_r AS wrong_answer, temp1.time AS test_day \nFROM \n( {$this->_wrong} ) AS temp1 \nLEFT JOIN \n( {$this->_right} ) AS temp2 \nON temp1.time = temp2.time";
     $start = $request->query->get('start', date('Y-m-d', strtotime("-7 day")));
     $end = $request->query->get('end', date('Y-m-d'));
     $entityManager = $this->getEntityManager();
     $stmt = $entityManager->getConnection()->executeQuery($sql, ['user_id' => $user->getId(), 'start' => $start, 'end_time' => $end]);
     $data = $stmt->fetchAll();
     return $data;
 }
예제 #15
0
 /**
  * Return true if $user and current user is the same
  *
  * @param User $user
  * @param TokenInterface $token
  *
  * @return bool
  */
 private function isHimself(User $user, TokenInterface $token) : bool
 {
     $currentUser = $this->getUserFromToken($token);
     if (is_null($currentUser)) {
         return false;
     }
     return $user->getId() === $currentUser->getId();
 }
예제 #16
0
 public function findByCollaborator(User $user)
 {
     $query = $this->createQueryBuilder('issue');
     $query->leftJoin('issue.collaborators', 'c')->where('c.id = :user_id')->andwhere('issue.status = :status')->setParameters(['user_id' => $user->getId(), 'status' => EnumStatusIssue::OPEN]);
     return $query->getQuery()->getResult();
 }
 public function findByUser(User $user)
 {
     $query = $this->createQueryBuilder('activity');
     $query->leftJoin('activity.project', 'p')->leftJoin('activity.issue', 'i')->leftJoin('activity.user', 'u')->where('u.id = :user_id')->setParameter('user_id', $user->getId())->orderBy('activity.created', 'DESC')->setMaxResults(16);
     return $query->getQuery()->getResult();
 }
 /**
  * @param User $user
  *
  * @return UserValueObject
  */
 private function populateUserValueObject(User $user)
 {
     return new UserValueObject($user->getId(), $user->getUsername(), $user->getEmail());
 }
예제 #19
0
 /**
  * @Route("/remove-member/{user}", name="team_remove_member")
  * @param User $user
  * @return Response
  */
 public function removeMemberAction(User $user)
 {
     /** @var User $currentUser */
     $currentUser = $this->getUser();
     if ($currentUser->getId() === $user->getId()) {
         $user->setTeam(null);
     } elseif ($currentUser->isCaptain() && $currentUser->getTeam()->getId() === $user->getTeam()->getId()) {
         $user->setTeam(null);
     } else {
         throw new NotFoundHttpException();
     }
     $this->getDoctrine()->getManager()->persist($user);
     $this->getDoctrine()->getManager()->flush();
     $this->addFlash('success', 'Игрок удален из команды');
     return $this->redirectToRoute('team_index');
 }
예제 #20
0
 /**
  * @param User $user
  *
  * @Config\Route("/{id}", name="cheerup_profile_show")
  * @Config\Template()
  *
  * @return array
  */
 public function showAction(User $user)
 {
     $currentUser = $this->getUser();
     $allowedToEdit = $currentUser->getId() === $user->getId();
     $userProfile = $user->getUserProfile();
     return ['allowed_to_edit' => $allowedToEdit, 'user' => $user];
 }