/** * {@inheritDoc} */ public function load(ObjectManager $manager) { $user = new User(); $user->setUsername('admin'); //$user->setSalt(md5(uniqid())); $encoder = $this->container->get('security.encoder_factory')->getEncoder($user); $user->setPassword($encoder->encodePassword('secret', $user->getSalt())); $user->setEmail('*****@*****.**'); $user->setIsActive(true); $manager->persist($user); $user = new User(); $user->setUsername('henry'); //$user->setSalt(md5(uniqid())); $encoder = $this->container->get('security.encoder_factory')->getEncoder($user); $user->setPassword($encoder->encodePassword('secret', $user->getSalt())); $user->setEmail('*****@*****.**'); $user->setIsActive(true); $manager->persist($user); $manager->flush(); }
public function loadUserByOAuthUserResponse(UserResponseInterface $response) { //Data from Google response $social_id = $response->getUsername(); /* An ID like: 112259658235204980084 */ $email = $response->getEmail(); $nickname = $response->getNickname(); $realname = $response->getRealName(); $avatar = $response->getProfilePicture(); //set data in session $this->session->set('email', $email); $this->session->set('nickname', $nickname); $this->session->set('realname', $realname); $this->session->set('avatar', $avatar); //Check if this Google user already exists in our app DB $qb = $this->doctrine->getManager()->createQueryBuilder(); $qb->select('u') ->from('BloggerBlogBundle:User', 'u') ->where('u.socialId = :sid') ->setParameter('sid', $social_id) ->setMaxResults(1); $result = $qb->getQuery()->getResult(); //add to database if doesn't exists if (!count($result)) { $user = new User(); $user->setUsername($social_id); $user->setRealname($realname); $user->setNickname($nickname); $user->setEmail($email); $user->setSocialId($social_id); //$user->setRoles('ROLE_USER'); //Set some wild random pass since its irrelevant, this is Google login $factory = $this->container->get('security.encoder_factory'); $encoder = $factory->getEncoder($user); $password = $encoder->encodePassword(md5(uniqid()), $user->getSalt()); $user->setPassword($password); $em = $this->doctrine->getManager(); $em->persist($user); $em->flush(); } else { $user = $result[0]; /* return User */ } //set id $this->session->set('id', $user->getId()); return $this->loadUserByUsername($response->getUsername()); }