Beispiel #1
0
 public function loginTfaAction()
 {
     if (!$this->authSession->identity) {
         return $this->redirect()->toRoute('login');
     }
     if ($this->getRequest()->isPost()) {
         $this->verifyCodeForm->setData($this->getRequest()->getPost());
         /** @var AccountInterface $account */
         $account = $this->zourceIdentity($this->authSession->identity)->getAccount();
         /** @var \ZourceUser\InputFilter\VerifyCode $inputFilter */
         $inputFilter = $this->verifyCodeForm->getInputFilter();
         $inputFilter->setOneTimePasswordType($account->getTwoFactorAuthenticationType());
         $inputFilter->setOneTimePasswordCode($account->getTwoFactorAuthenticationCode());
         if ($this->verifyCodeForm->isValid()) {
             $this->authSession->verified = true;
             return $this->redirectAfterLogin($account);
         }
     }
     return new ViewModel(['verifyCodeForm' => $this->verifyCodeForm]);
 }
Beispiel #2
0
 /**
  * @param  FormInterface $form
  * @return bool|array
  */
 protected function handleGetRequest(FormInterface $form)
 {
     $container = $this->getSessionContainer();
     if (null === $container->post) {
         // No previous post, bail early
         unset($container->files);
         return false;
     }
     // Collect data from session
     $post = $container->post;
     $errors = $container->errors;
     $isValid = $container->isValid;
     unset($container->post);
     unset($container->errors);
     unset($container->isValid);
     // Fill form with the data first, collections may alter the form/filter structure
     $form->setData($post);
     // Remove File Input validators and filters on previously uploaded files
     // in case $form->isValid() or $form->bindValues() is run
     $inputFilter = $form->getInputFilter();
     $this->traverseInputs($inputFilter, $post, function ($input, $value) {
         if ($input instanceof FileInput) {
             $input->setAutoPrependUploadValidator(false)->setValidatorChain(new ValidatorChain())->setFilterChain(new FilterChain());
         }
         return $value;
     });
     // set previous state
     $form->isValid();
     // re-validate to bind values
     if (null !== $errors) {
         $form->setMessages($errors);
         // overwrite messages
     }
     $this->setProtectedFormProperty($form, 'isValid', $isValid);
     // force previous state
     // Clear previous files from session data if form was valid
     if ($isValid) {
         unset($container->files);
     }
     return $post;
 }
 /**
  * @param FormInterface      $form
  * @param \Zend\Http\Request $request
  * @param AdminMenu          $adminMenu
  *
  * @return \Zend\Http\Response
  */
 private function processFormData(FormInterface $form, \Zend\Http\Request $request, AdminMenu $adminMenu)
 {
     $form->setInputFilter($form->getInputFilter());
     $form->setData($request->getPost());
     if ($form->isValid()) {
         $this->adminMenuTable->saveAdminMenu($adminMenu);
         $this->setLayoutMessages('«' . $adminMenu->getCaption() . '» ' . $this->translate('SAVE_SUCCESS'), 'success');
     }
     return $this->redirect()->toUrl('/admin/admin-menu');
 }
 /**
  * @param FormInterface $form
  * @param Content       $content
  * @param array         $data
  *
  * @return void
  */
 private function processFormData(FormInterface $form, Content $content, array $data)
 {
     $form->setInputFilter($form->getInputFilter());
     $form->setData($data);
     $this->saveFormData($form, $content);
 }