Exemplo n.º 1
0
 /**
  * @Rest\Post("/signup" )
  * @ApiDoc(
  *  resource=true,
  *  description="Signup",
  * )
  */
 public function postSignUpAction(Request $request)
 {
     $objSignUpvalidator = new SignUpValidator($this->createFormBuilder(), $request);
     $objSignUpvalidator->validate();
     if ($objSignUpvalidator->hasError()) {
         return ['errors' => $objSignUpvalidator->getErrors()];
     }
     $objUser = new User();
     $objCustomer = new Customer();
     $objCustomer->setEmailAddress($objSignUpvalidator->getData('email'));
     $strName = trim($objSignUpvalidator->getData('name'));
     list($strFirstName, $strLastName) = explode(' ', $strName);
     $objCustomer->setFirstName($strFirstName);
     $objCustomer->setLastName($strLastName);
     $objUser->setEmail($objSignUpvalidator->getData('email'));
     $objUser->setPassword($objSignUpvalidator->getData('password'));
     $objUser->setCustomer($objCustomer);
     $this->objEntityManager->persist($objCustomer);
     $this->objEntityManager->persist($objUser);
     $this->objEntityManager->flush();
     $objSecurityToken = $this->get('security.authentication.token');
     $this->objSession->set('user/id', $objUser->getId());
     $this->objSession->set('user/customer_id', $objCustomer->getId());
     $this->objSession->set('security/token', $objSecurityToken->getSessionToken());
     $objSecurityToken->generateAuthToken(array($objUser->getId(), $objSecurityToken->getSessionToken(), $request->getClientIp(), $request->headers->get('User-Agent')));
     return array('token' => $objSecurityToken->getAuthToken());
 }
Exemplo n.º 2
0
 /**
  * Add User
  * @Rest\Post("/add" )
  * @ApiDoc(
  *  resource=true,
  *  description="User Add",
  * )
  */
 public function postAddUserAction(Request $request)
 {
     $objEntityManager = $this->getDoctrine()->getManager();
     $objCustomer = new Customer();
     $objCustomer->setEmailAddress($request->get('email'));
     $objCustomer->setBillingAddressId(1);
     $objCustomer->setFirstName($request->get('name'));
     $objCustomer->setLastName($request->get('name'));
     $objUser = new User();
     $objUser->setEmail($request->get('email'));
     $objUser->setPassword($request->get('password'));
     $objUser->setName($request->get('name'));
     $objUser->setCustomer($objCustomer);
     $objEntityManager->persist($objCustomer);
     $objEntityManager->persist($objUser);
     $objEntityManager->flush();
     return array('user' => array('id' => $objUser->getId()));
 }
 /**
  * login
  * @Rest\Post("/login" )
  * @ApiDoc(
  *  resource=true,
  *  description="Facebook Login User",
  * )
  */
 public function postLoginAction(Request $request)
 {
     // 		$objFacebookValidator = new FacebookValidator( $this->createFormBuilder( [] ), $request );
     // 		$objFacebookValidator->validate( ['code', 'clientId', 'redirectUri'] );
     // 		if( $objFacebookValidator->hasError() ) {
     // 			return [ 'error' => $objFacebookValidator->getErrors() ];
     // 		}
     // 		$accessTokenUrl = 'https://graph.facebook.com/v2.3/oauth/access_token';
     // 		$accessTokenUrl .= '?code=' . $objFacebookValidator->getData( 'code' );
     // 		$accessTokenUrl .= '&client_id=' . $objFacebookValidator->getData( 'clientId' );
     // 		$accessTokenUrl .= '&redirect_uri=' . $objFacebookValidator->getData( 'redirectUri' );
     // 		$accessTokenUrl .= '&client_secret=' . $this->container->getParameter('facebook_app_secret');
     $arrData = json_decode($request->getContent(), true);
     $accessTokenUrl = 'https://graph.facebook.com/v2.3/oauth/access_token';
     $accessTokenUrl .= '?code=' . $arrData['code'];
     $accessTokenUrl .= '&client_id=' . $arrData['clientId'];
     $accessTokenUrl .= '&redirect_uri=' . $arrData['redirectUri'];
     $accessTokenUrl .= '&client_secret=' . $this->container->getParameter('facebook_app_secret');
     $strJsonResponse = $this->makeGetRequestToEndPoint($accessTokenUrl);
     // 		$objFacebookAccessTokenValidator = new FacebookValidator( $this->createFormBuilder() );
     // 		$objFacebookAccessTokenValidator->setDataByJson( $strJsonResponse );
     // 		$objFacebookAccessTokenValidator->validate( ['access_token', 'token_type', 'expires_in'] );
     // 		if( $objFacebookAccessTokenValidator->hasError() ) {
     // 			return [ 'error' => $objFacebookAccessTokenValidator->getErrors() ];
     // 		}
     $arrDataToken = json_decode($strJsonResponse, true);
     $graphApiUrl = 'https://graph.facebook.com/v2.3/me';
     $graphApiUrl .= '?access_token=' . $arrDataToken['access_token'];
     $strJsonResponse = $this->makeGetRequestToEndPoint($graphApiUrl);
     // 		$objFacebookUserValidator = new FacebookValidator( $this->createFormBuilder() );
     // 		$objFacebookUserValidator->setDataByJson( $strJsonResponse );
     // 		$objFacebookUserValidator->validate( ['id', 'email', 'first_name', 'last_name', 'link', 'name', 'gender' ] );
     // 		if( $objFacebookUserValidator->hasError() ) {
     // 			return [ 'error' => $objFacebookUserValidator->getErrors() ];
     // 		}
     $arrUserData = json_decode($strJsonResponse, true);
     $objUser = $this->objEntityManager->getRepository('BundlesUserBundle:Users')->fetchByEmail($arrUserData['email']);
     if (true == is_null($objUser)) {
         $objCustomer = new Customer();
         $objCustomer->setFirstName($arrUserData['first_name']);
         $objCustomer->setLastName($arrUserData['last_name']);
         $objCustomer->setEmailAddress($arrUserData['email']);
         $objUser = new Users();
         $objUser->setName($arrUserData['name']);
         $objUser->setEmail($arrUserData['email']);
         $objUser->setFacebookId($arrUserData['id']);
         $objUser->setFacebookAccessToken($arrUserData['access_token']);
         $objUser->setCustomer($objCustomer);
         $this->objEntityManager->persist($objUser);
         $this->objEntityManager->persist($objCustomer);
         $this->objEntityManager->flush();
     }
     $objSecurityToken = $this->get('security.authentication.token');
     $this->objSession->set('user/id', $objUser->getId());
     $this->objSession->set('security/token', $objSecurityToken->getSessionToken());
     if (false == is_null($objUser->getCustomer())) {
         $this->objSession->set('user/customer_id', $objUser->getCustomer()->getId());
     }
     $objSecurityToken->generateAuthToken(array($objUser->getId(), $objSecurityToken->getSessionToken(), $request->headers->get('User-Agent')));
     return array('token' => $objSecurityToken->getAuthToken());
 }