/** * {@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; }
/** * 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; }