/** * @param User $user * * @return array */ public function findByUser(User $user) { $em = $this->getEntityManager(); $qb = $em->createQueryBuilder(); $qb->select('i')->from('ProjectPreviewProjectBundle:Input', 'i')->join('ProjectPreviewProjectBundle:Project', 'p')->join('ProjectPreviewProjectBundle:User', 'u', 'WITH', 'u.id = :user_id')->where('p.project_manager = u')->orWhere('p.commercial = u')->orWhere('u in (p.clients')->orderBy('p.name', 'ASC')->setParameter('user_id', $user->getId()); $query = $qb->getQuery(); return $query->getArrayResult(); }
/** * @param User $user */ public function updateUser(User $user) { $plainPassword = $user->getPlainPassword(); if (!empty($plainPassword)) { $encoder = $this->getEncoder($user); $user->setPassword($encoder->encodePassword($plainPassword, $user->getSalt())); $user->eraseCredentials(); } }
/** * Import Users */ private function importUsers() { $this->output->write(sprintf('%-30s', 'Importing users')); $previewUsers = $this->previewService->getUsers(); $created = 0; $updated = 0; foreach ($previewUsers as $previewUser) { if (!strlen($previewUser->email)) { continue; } /** * @var User $user */ $user = $this->entityManager->getRepository('ProjectPreviewUserBundle:User')->find($previewUser->id); if (is_null($user)) { $user = new User(); $user->setId($previewUser->id); $user->setPassword('toto'); $created++; } else { $updated++; } $user->setEmail($previewUser->email); $user->setUsername($previewUser->email); $user->setLastname($previewUser->lastname); $user->setFirstname($previewUser->firstname); if (isset($previewUser->avatar->urls->avatar_xs)) { $user->setAvatar($previewUser->avatar->urls->avatar_xs); } $this->entityManager->persist($user); } $this->output->writeln(sprintf('done (total: % 4d, created: % 4d, updated: % 4d)', $created + $updated, $created, $updated)); $this->entityManager->flush(); }
/** * @param User $user * * @return \Google_Client */ public function getAuthenticateClient(User $user) { $client = $this->getClient(); $client->setAccessToken($user->getGoogleAgendaToken()); if ($client->isAccessTokenExpired()) { $token = json_decode($user->getGoogleAgendaToken()); if (isset($token->refreshToken)) { $client->refreshToken($token->refreshToken); $user->setGoogleAgendaToken($client->getAccessToken()); $this->entityManager->persist($user); $this->entityManager->flush(); } } return $client; }