Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function facebookLoginOrRegister($profile)
- {
- $em = $this->getDoctrine()->getManager();
- $user = $em->getRepository('HolostoreBundle:User\User')->findOneByMail($profile->getEmail());
- if(!is_null($user))
- // This email is known, the user is logged in
- {
- $user->setFirstName($profile->getFirstName());
- $user->setLastName($profile->getLastName());
- $user->setLastLoginDate(new \DateTime);
- }
- else
- // User is unknown, we create an account
- {
- $user = new User;
- // Generate credentials
- $username = $this->generateUsername($profile->getFirstName(), $profile->getLastName());
- $password = $this->generatePassword(uniqid());
- // Fill user datas
- $user->setMail($profile->getEmail());
- $user->setUsername($username);
- $user->setFirstName($profile->getFirstName());
- $user->setLastName($profile->getLastName());
- $user->setPassword($password);
- // Set metadatas
- $user->setActivated(true);
- $user->setFacebookAccount(true);
- $user->setFacebookId($profile->getId());
- $em->persist($user);
- }
- $em->flush();
- $token = new UsernamePasswordToken($user, $user->getPassword(), 'main', $user->getRoles());
- $this->get('security.token_storage')->setToken($token);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement