/** * @param User $user */ public function updateUserInfosWithLdap(User $user) { try { $datas = $this->ldap->getDataByUid($user->getUsername()); $user->setFirstName($datas['givenname'][0]); $user->setLastName($datas['sn'][0]); $user->setEmail($datas['mail'][0]); $user->setPlainPassword(md5(uniqid(rand(), true))); $user->setPhoto(base64_encode($datas['jpegphoto'][0])); } catch (\Exception $e) { throw new UsernameNotFoundException(sprintf('Impossible de trouver %s dans le LDAP', $user->getUsername())); } }
/** * Login user with twitterId * @param $request * @return bool */ public function loginTwitter($request) { $twitterId = $request->request->get('user_id'); $name = $request->request->get('name'); $photo = $request->request->get('picture_url'); $platform = $request->request->get('platform'); try { // If user exists if ($twitterId && ($user = $this->em->getRepository('AppBundle:User')->findOneByTwitterId($twitterId))) { $user->setTwitterId($twitterId); if (isset($name)) { $user->setName($name); } $user->setPlatform($platform); $user->setPhoto($photo); $this->em->persist($user); $this->em->flush(); // New twitter user } else { $user = new User(); $user->setPlatform($platform); $user->setPhoto($photo); $user->setTwitterId($twitterId); if (isset($name)) { $user->setName($name); } $token = $request->request->get('token'); if (!$token) { $random = substr(md5(rand()), 0, 7); $newToken = sha1('MIDGET' . $random . 'NINJA'); $user->setToken($newToken); } $this->em->persist($user); $this->em->flush(); } $user = $this->em->getRepository('AppBundle:User')->getOneByToken($user->getToken()); return $user; } catch (\ExportException $e) { return $e->getMessage(); } }
/** * @param User $user * * @return UserDTO */ public function createUser(User $user) { if ($user->getPositionLat() . $user->getPositionLong() != "") { $infos = Geocoder::getLocation($user->getPositionLat(), $user->getPositionLong()); $city = Geocoder::getCityFromAddress($infos); $department = Geocoder::getDepartmentFromAddress($infos); $country = Geocoder::getCountryFromAddress($infos); $user->setPositionCity($city); $user->setPositionDep($department); $user->setPositionCountry($country); } $user->setPassword(sha1($user->getPassword())); if ($user->getPhoto() == "") { $user->setPhoto("https://randomuser.me/api/portraits/med/men/54.jpg"); } $this->em->persist($user); $this->em->flush(); return new UserDTO($user); }