/** * @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()]); } } }
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'; } }