/**
  * Process method for handler
  * @param Channel $channel
  *
  * @return boolean
  */
 public function process(Channel $channel)
 {
     $this->form->setData($channel);
     if ($this->request->isMethod('POST')) {
         $this->form->bind($this->request);
         if ($this->form->isValid()) {
             $this->onSuccess($channel);
             return true;
         }
     }
     return false;
 }
 /**
  * @param UserInterface $user
  * @return bool
  */
 public function process(UserInterface $user)
 {
     $this->form->setData(new ChangePassword());
     if ('POST' === $this->request->getMethod()) {
         $this->form->bind($this->request);
         if ($this->form->isValid()) {
             $this->onSuccess($user);
             return true;
         }
     }
     return false;
 }
 /**
  * Process method for handler
  * @param AttributeGroup $group
  *
  * @return boolean
  */
 public function process(AttributeGroup $group)
 {
     $this->form->setData($group);
     if ($this->request->isMethod('POST')) {
         $this->form->bind($this->request);
         if ($this->form->isValid()) {
             $this->onSuccess($group);
             return true;
         }
     }
     return false;
 }
Esempio n. 4
0
 public function process(FormInterface $form)
 {
     if ('POST' == $this->request->getMethod()) {
         $form->bind($this->request);
         if ($form->isValid()) {
             return $this->onSuccess($form->getData());
         }
     }
     return false;
 }
Esempio n. 5
0
 /**
  * {@inheritDoc}
  */
 public function isValid(FormInterface $form)
 {
     $request = $this->getRequest();
     if ($request->isMethod('POST') && !in_array($this->getRequestedTransition(), array(self::TRANSITION_BACK, self::TRANSITION_RESET))) {
         $form->bind($request);
         if ($this->hasListeners(FormFlowEvents::POST_BIND_REQUEST)) {
             $event = new PostBindRequestEvent($this, $form->getData(), $this->currentStepNumber);
             $this->eventDispatcher->dispatch(FormFlowEvents::POST_BIND_REQUEST, $event);
         }
         if ($form->isValid()) {
             if ($this->hasListeners(FormFlowEvents::POST_VALIDATE)) {
                 $event = new PostValidateEvent($this, $form->getData());
                 $this->eventDispatcher->dispatch(FormFlowEvents::POST_VALIDATE, $event);
             }
             return true;
         }
     }
     return false;
 }
Esempio n. 6
0
 private function doAuthentication(PhraseaApplication $app, Request $request, FormInterface $form, $redirector)
 {
     if (!is_callable($redirector)) {
         throw new InvalidArgumentException('Redirector should be callable');
     }
     $context = new Context(Context::CONTEXT_NATIVE);
     $app['dispatcher']->dispatch(PhraseaEvents::PRE_AUTHENTICATE, new PreAuthenticate($request, $context));
     $form->bind($request);
     if (!$form->isValid()) {
         $app->addFlash('error', $app->trans('An unexpected error occured during authentication process, please contact an admin'));
         throw new AuthenticationException(call_user_func($redirector));
     }
     $params = [];
     if (null !== ($redirect = $request->get('redirect'))) {
         $params['redirect'] = ltrim($redirect, '/');
     }
     try {
         $usr_id = $app['auth.native']->getUsrId($request->request->get('login'), $request->request->get('password'), $request);
     } catch (RequireCaptchaException $e) {
         $app->requireCaptcha();
         $app->addFlash('warning', $app->trans('Please fill the captcha'));
         throw new AuthenticationException(call_user_func($redirector, $params));
     } catch (AccountLockedException $e) {
         $app->addFlash('warning', $app->trans('login::erreur: Vous n\'avez pas confirme votre email'));
         $app->addUnlockAccountData($e->getUsrId());
         throw new AuthenticationException(call_user_func($redirector, $params));
     }
     if (null === $usr_id) {
         $app['session']->getFlashBag()->set('error', $app->trans('login::erreur: Erreur d\'authentification'));
         throw new AuthenticationException(call_user_func($redirector, $params));
     }
     $user = $app['manipulator.user']->getRepository()->find($usr_id);
     $session = $this->postAuthProcess($app, $user);
     $response = $this->generateAuthResponse($app, $app['browser'], $request->request->get('redirect'));
     $response->headers->clearCookie('invite-usr-id');
     if ($request->cookies->has('postlog') && $request->cookies->get('postlog') == '1') {
         if (!$user->isGuest() && $request->cookies->has('invite-usr_id')) {
             if ($user->getId() != ($inviteUsrId = $request->cookies->get('invite-usr_id'))) {
                 $repo = $app['EM']->getRepository('Phraseanet:Basket');
                 $baskets = $repo->findBy(['usr_id' => $inviteUsrId]);
                 foreach ($baskets as $basket) {
                     $basket->setUser($user);
                     $app['EM']->persist($basket);
                 }
             }
         }
     }
     if ($request->request->get('remember-me') == '1') {
         $nonce = \random::generatePassword(16);
         $string = $app['browser']->getBrowser() . '_' . $app['browser']->getPlatform();
         $token = $app['auth.password-encoder']->encodePassword($string, $nonce);
         $session->setToken($token)->setNonce($nonce);
         $response->headers->setCookie(new Cookie('persistent', $token));
         $app['EM']->persist($session);
         $app['EM']->flush();
     }
     $event = new PostAuthenticate($request, $response, $user, $context);
     $app['dispatcher']->dispatch(PhraseaEvents::POST_AUTHENTICATE, $event);
     return $event->getResponse();
 }