/**
  * @Route("/add/adv", name="naidusvoe_add_adv", options={"expose" = true})
  * @param Request $request
  * @return JsonResponse
  */
 public function addNewAdvAction(Request $request)
 {
     $data = json_decode($request->getContent(), true);
     $data = (object) $data;
     /** @var EntityManager $em */
     $em = $this->getDoctrine()->getManager();
     $user = $em->getRepository('NaidusvoeBundle:User')->findOneBy(['email' => $data->email]);
     if ($data->authorization === true && isset($data->password)) {
         if ($this->get('naidusvoe.user')->forceSignIn($request, $user, $data->password) === false) {
             return new JsonResponse(['status' => -1]);
         }
     }
     $authorizationChecker = $this->get('security.authorization_checker');
     if ($authorizationChecker->isGranted('ROLE_USER')) {
         $user = $this->get('security.token_storage')->getToken()->getUser();
         $adv = $this->AddAdv($data, $user);
         $adv = $adv ? $adv->getInArray() : null;
         return new JsonResponse(['status' => 1, 'object' => $adv]);
     } else {
         if ($user !== null) {
             return new JsonResponse(['status' => 2, 'email' => $data->email]);
         } else {
             $password = User::generatePassword();
             $user = $this->get('naidusvoe.user')->signUp($data->email, $password, $data->contactPerson);
             $adv = $this->AddAdv($data, $user);
             $adv = $adv ? $adv->getInArray() : null;
             return new JsonResponse(['status' => 3, 'object' => $adv, 'user' => $user->getInArray()]);
         }
     }
 }
Esempio n. 2
0
 public function oAuthLogin(Request $request, $data)
 {
     $response = $data['data'];
     $credentials = $data['credentials'];
     $user = $this->entityManager->getRepository('NaidusvoeBundle:User')->findOneBy([$response['resource'] => $response['resourceId']]);
     if ($user === null) {
         if ($credentials !== null) {
             $user = $this->signUp($credentials['email'], User::generatePassword(), $credentials['name'], $response['resource'], $response['resourceId']);
             return 'registered';
         } else {
             return 'credentials';
         }
     }
     if ($user->getActive() === true) {
         return $this->forceSignIn($request, $user, null, true);
     } else {
         return 'not_active';
     }
 }