/**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $users = array(1 => array('name' => 'John Doe', 'email' => '*****@*****.**', 'friends' => array(), 'requests' => array()), 2 => array('name' => 'Sara Doe', 'email' => '*****@*****.**', 'friends' => array(), 'requests' => array(1)), 3 => array('name' => 'James Doe', 'email' => '*****@*****.**', 'friends' => array(), 'requests' => array(1, 2)), 4 => array('name' => 'Jane Smith', 'email' => '*****@*****.**', 'friends' => array(), 'requests' => array(3)), 5 => array('name' => 'Anonymous', 'email' => '*****@*****.**', 'friends' => array(), 'requests' => array(4)));
     foreach ($users as $id => $userData) {
         $user = new User();
         $user->setName($userData['name']);
         $user->setEmail($userData['email']);
         foreach ($userData['friends'] as $friendId) {
             $user->addFriend($this->getReference('user_' . $friendId));
         }
         foreach ($userData['requests'] as $requestId) {
             $user->addRequest($this->getReference('user_' . $requestId));
         }
         $manager->persist($user);
         $this->addReference('user_' . $id, $user);
     }
     $manager->flush();
 }
 private function firstLogin($inputData)
 {
     //  Initiate curl
     $ch = curl_init();
     // Disable SSL verification
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
     // Will return the response, if false it print the response
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_URL, AndroidGrantExtension::FACEBOOK_API_URL . 'access_token=' . $inputData['facebook_token']);
     $me = json_decode(curl_exec($ch));
     if (isset($me->error)) {
         throw new OAuth2ServerException(OAuth2::HTTP_BAD_REQUEST, OAuth2::ERROR_INVALID_REQUEST, 'Invalid Facebook OAuth access token');
     }
     if ($inputData['facebook_id'] != $me->id) {
         throw new OAuth2ServerException(OAuth2::HTTP_BAD_REQUEST, OAuth2::ERROR_INVALID_REQUEST, 'Facebook OAuth access token don\'t match facebook_id');
     }
     $user = $this->repository->findOneBy(array('facebookId' => $me->id));
     if ($user === null) {
         $user = new User();
         $user->setFacebookId($me->id);
         $user->setFirstName($me->first_name);
         $user->setLastName($me->last_name);
         $user->setGender($me->gender);
         if (!empty($me->birthday)) {
             $exploded = explode('/', $me->birthday);
             $date = new \DateTime();
             $date->setDate($exploded[2], $exploded[0], $exploded[1]);
             $user->setBirthday($date);
         }
         if (!empty($me->hometown)) {
             $user->setHometown($me->hometown->name);
         }
         $user->setEmail($me->email);
         $user->setUsername('guest-' . substr(base_convert(sha1(uniqid(mt_rand(), true)), 16, 36), 0, 6));
         $user->setAutoUsername(true);
         $user->setPlainPassword(substr(base_convert(sha1(uniqid(mt_rand(), true)), 16, 36), 0, 7));
         $user->setAutoPassword(true);
         $user->setEnabled(true);
         $this->om->persist($user);
         $this->om->flush();
     }
     return array('data' => $user);
 }
 /**
  * @Post("/register")
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function registerAction(Request $request)
 {
     $email = $request->request->get('email');
     $password = $request->request->get('password');
     $creditCard = ['name' => $request->request->get('cc-name'), 'number' => $request->request->get('cc-number'), 'cvc' => $request->request->get('cc-cvc'), 'month' => $request->request->get('cc-month'), 'year' => $request->request->get('cc-year')];
     if (!$email || !$password) {
         throw new \Symfony\Component\Validator\Exception\InvalidArgumentException('Email and password required');
     }
     if (!$this->get('credit_card_validator')->validate($creditCard)) {
         throw new \Symfony\Component\Validator\Exception\InvalidArgumentException('Invalid Credit Card given');
     }
     $dm = $this->get('doctrine.odm.mongodb.document_manager');
     $user = $dm->getRepository('AppBundle:User')->findOneBy(['email' => $email]);
     if ($user) {
         throw new \Symfony\Component\Validator\Exception\InvalidArgumentException('User already exists');
     }
     $user = new User();
     $user->setEmail($email);
     $user->setPassword($password);
     $user->setCreditCard($creditCard);
     $dm->persist($user);
     $dm->flush();
     return true;
 }
Example #4
0
 /**
  * Creates a new user document and persist it
  * @param ObjectManager $manager object manager
  * @param string|null   $email   email to create user with
  * @return User
  */
 private function _createUser(ObjectManager $manager, $email = null)
 {
     $user = new User();
     $email = $email ?: sprintf('*****@*****.**', uniqid());
     $user->setEmail($email);
     $user->setPassword(self::TEST_PASS);
     $encoder = $this->_container->get('security.password_encoder');
     $encryptedPassword = $encoder->encodePassword($user, self::TEST_PASS);
     $user->setPassword($encryptedPassword);
     $manager->persist($user);
     return $user;
 }