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