| | <?php |
| |
|
| | namespace Kanboard\Validator; |
| |
|
| | use SimpleValidator\Validator; |
| | use SimpleValidator\Validators; |
| | use Gregwar\Captcha\CaptchaBuilder; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | class AuthValidator extends BaseValidator |
| | { |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function validateForm(array $values) |
| | { |
| | return $this->executeValidators(array('validateFields', 'validateLocking', 'validateCaptcha', 'validateCredentials'), $values); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | protected function validateFields(array $values) |
| | { |
| | $v = new Validator($values, array( |
| | new Validators\Required('username', t('The username is required')), |
| | new Validators\MaxLength('username', t('The maximum length is %d characters', 191), 191), |
| | new Validators\Required('password', t('The password is required')), |
| | )); |
| |
|
| | return array( |
| | $v->execute(), |
| | $v->getErrors(), |
| | ); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | protected function validateLocking(array $values) |
| | { |
| | $result = true; |
| | $errors = array(); |
| |
|
| | if ($this->userLockingModel->isLocked($values['username'])) { |
| | $result = false; |
| | $errors['login'] = t('Your account is locked for %d minutes', BRUTEFORCE_LOCKDOWN_DURATION); |
| | $this->logger->error('Account locked: '.$values['username']); |
| | } |
| |
|
| | return array($result, $errors); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | protected function validateCredentials(array $values) |
| | { |
| | $result = true; |
| | $errors = array(); |
| |
|
| | if (! $this->authenticationManager->passwordAuthentication($values['username'], $values['password'])) { |
| | $result = false; |
| | $errors['login'] = t('Bad username or password'); |
| | } |
| |
|
| | return array($result, $errors); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | protected function validateCaptcha(array $values) |
| | { |
| | $result = true; |
| | $errors = array(); |
| |
|
| | if ($this->userLockingModel->hasCaptcha($values['username'])) { |
| | if (! session_exists('captcha')) { |
| | $result = false; |
| | } else { |
| | $builder = new CaptchaBuilder; |
| | $builder->setPhrase(session_get('captcha')); |
| | $result = $builder->testPhrase(isset($values['captcha']) ? $values['captcha'] : ''); |
| |
|
| | if (! $result) { |
| | $errors['login'] = t('Invalid captcha'); |
| | } |
| | } |
| | } |
| |
|
| | return array($result, $errors); |
| | } |
| | } |
| |
|