public function testValidatingArrayTokenInContext() { $this->validator->setToken(array('user' => 'email')); $this->assertTrue($this->validator->isValid( '*****@*****.**', array( 'user' => array( 'email' => '*****@*****.**' ) ) )); $this->assertFalse($this->validator->isValid( '*****@*****.**', array( 'user' => array( 'email' => '*****@*****.**' ) ) )); $this->assertFalse($this->validator->isValid( '*****@*****.**', array( 'user' => array( 'email' => '*****@*****.**' ) ) )); }
/** * Returns true if and only if a token has been set and the provided value * does not match that token. * * @param mixed $value * @param array $context * @return bool * @throws Zend\Validator\Exception\RuntimeException * if the token doesn't exist in the context array */ public function isValid($value, array $context = null) { $isValid = parent::isValid($value, $context); $messages = $this->getMessages(); if (array_key_exists(self::MISSING_TOKEN, $messages)) { return false; } // clear previous messages $this->abstractOptions['messages'] = array(); if ($isValid) { $this->error(self::SAME); return false; } return true; }
public function testValidatingNonStrictToken() { $validator = new Validator\Identical(array('token' => 123, 'strict' => false)); $this->assertTrue($validator->isValid('123')); $validator->setStrict(true); $this->assertFalse($validator->isValid(array('token' => '123'))); }
public function testValidatingTokenArray() { $validator = new Validator\Identical(array('token' => 123)); $this->assertTrue($validator->isValid(123)); $this->assertFalse($validator->isValid(array('token' => 123))); }
public function testSetArrayTokenNonExistentInContext() { $this->validator->setToken(array('user' => 'email')); $this->setExpectedException('Zend\\Validator\\Exception\\RuntimeException', "The token doesn't exist in the context"); $this->validator->isValid('*****@*****.**', array('admin' => array('email' => '*****@*****.**'))); }
public function getIdenticalValidator() { if ($this->identicalValidator === NULL) { $validator = new Identical($this->getIdenticalConfig()); $validator->setMessages(array(Identical::NOT_SAME => $this->getErrorMessage('IDENTICAL::NOT_SAME'), Identical::MISSING_TOKEN => $this->getErrorMessage('IDENTICAL::MISSING_TOKEN'))); $this->setIdenticalValidator($validator); } return $this->identicalValidator; }
/** * @param $token * @param string $message * @return Identical */ public static function identicalValidator($token, $message = null) { $validator = new Identical(compact('token')); if ($message) { $validator->setMessage($message); } else { $validator->setMessage('Input tidak sama dengan token.'); } return $validator; }
public function testLiteralParameterWorksWhenContextIsProvided() { $this->validator->setToken(array('foo' => 'bar')); $this->validator->setLiteral(true); $this->assertTrue($this->validator->isValid(array('foo' => 'bar'), array('foo' => 'baz'))); }
/** * Change Email Action * * Displays user change password form * * @return Zend\View\Model\ViewModel */ public function changePasswordAction() { if (!($user = $this->identity())) { return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute()); } $form = $this->getUserFormHelper()->createUserForm($user, 'ChangePassword'); $message = null; if ($this->getRequest()->isPost()) { $currentAnswer = $user->getAnswer(); $form->setValidationGroup('password', 'newPasswordVerify', 'answer', 'csrf'); $form->setData($this->getRequest()->getPost()); if ($form->isValid()) { $data = $form->getData(); $identicalValidator = new IdenticalValidator(array('token' => $currentAnswer)); if ($identicalValidator->isValid($data->getAnswer())) { $user->setPassword(UserCredentialsService::encryptPassword($this->params()->fromPost('password'))); $entityManager = $this->getEntityManager(); $entityManager->persist($user); $entityManager->flush(); $viewModel = new ViewModel(array('navMenu' => $this->getOptions()->getNavMenu())); $viewModel->setTemplate('csn-user/registration/change-password-success'); return $viewModel; } else { $message = $this->getTranslatorHelper()->translate('Your answer is wrong. Please provide the correct answer.'); } } } return new ViewModel(array('form' => $form, 'navMenu' => $this->getOptions()->getNavMenu(), 'message' => $message, 'question' => $user->getQuestion()->getQuestion())); }