Advertisement
Guest User

Untitled

a guest
Dec 27th, 2014
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.23 KB | None | 0 0
  1.     private function facebookLoginOrRegister($profile)
  2.     {
  3.         $em = $this->getDoctrine()->getManager();
  4.  
  5.         $user = $em->getRepository('HolostoreBundle:User\User')->findOneByMail($profile->getEmail());
  6.  
  7.         if(!is_null($user))
  8.         // This email is known, the user is logged in
  9.         {
  10.             $user->setFirstName($profile->getFirstName());
  11.             $user->setLastName($profile->getLastName());
  12.             $user->setLastLoginDate(new \DateTime);
  13.         }
  14.         else
  15.         // User is unknown, we create an account
  16.         {
  17.             $user = new User;
  18.  
  19.             // Generate credentials
  20.             $username = $this->generateUsername($profile->getFirstName(), $profile->getLastName());
  21.             $password = $this->generatePassword(uniqid());
  22.  
  23.             // Fill user datas
  24.             $user->setMail($profile->getEmail());
  25.             $user->setUsername($username);
  26.             $user->setFirstName($profile->getFirstName());
  27.             $user->setLastName($profile->getLastName());
  28.             $user->setPassword($password);
  29.  
  30.             // Set metadatas
  31.             $user->setActivated(true);
  32.             $user->setFacebookAccount(true);
  33.             $user->setFacebookId($profile->getId());
  34.  
  35.             $em->persist($user);
  36.         }
  37.  
  38.         $em->flush();
  39.  
  40.         $token = new UsernamePasswordToken($user, $user->getPassword(), 'main', $user->getRoles());
  41.         $this->get('security.token_storage')->setToken($token);
  42.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement