Esempio n. 1
0
    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' => '*****@*****.**'
                )
            )
        ));
    }
Esempio n. 2
0
 /**
  * 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;
 }
Esempio n. 3
0
 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')));
 }
Esempio n. 4
0
 public function testValidatingTokenArray()
 {
     $validator = new Validator\Identical(array('token' => 123));
     $this->assertTrue($validator->isValid(123));
     $this->assertFalse($validator->isValid(array('token' => 123)));
 }
Esempio n. 5
0
 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' => '*****@*****.**')));
 }
Esempio n. 6
0
 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;
 }
Esempio n. 7
0
 /**
  * @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;
 }
Esempio n. 8
0
 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()));
 }