Example #1
0
 public function validation()
 {
     $validator = new Validation();
     $validator->add('login', new UniquenessValidator(["model" => $this, "message" => $this->getDi()->get('helper')->translate("The Login must be unique")]));
     $validator->add('email', new UniquenessValidator(["model" => $this, "message" => $this->getDi()->get('helper')->translate("The Email must be unique")]));
     return $this->validate($validator);
 }
Example #2
0
 public function testInValid()
 {
     $array = ['ids' => ['*****@*****.**', '*****@*****.**', 1234]];
     $this->validation->add('ids', $this->testable);
     $messages = $this->validation->validate($array);
     $this->assertEquals(1, count($messages));
 }
Example #3
0
 public function validation()
 {
     $validator = new Validation();
     $validator->add('name', new PetnameValidator());
     $validator->add('birthday', new DateValidator(['message' => '您填写的动物生日的格式有误']));
     return $this->validate($validator);
 }
Example #4
0
 public function validation()
 {
     $validator = new Validation();
     $validator->add('email', new EmailValidator(['model' => $this, 'message' => 'Sorry, The email was registered by another user']));
     $validator->add('username', new UniquenessValidator(['model' => $this, 'message' => 'Sorry, That username is already taken']));
     return $this->validate($validator);
 }
Example #5
0
 /**
  * Validate user's email
  * @return bool
  */
 public function validation()
 {
     $validator = new Validation();
     $validator->add('email', new Email(['message' => 'Invalid email supplied']));
     $validator->add('email', new Uniqueness(array('message' => 'Sorry, The email has been used by another user')));
     return $this->validate($validator);
 }
Example #6
0
 public function validation()
 {
     $validator = new Validation();
     $validator->add('start_time', new DatetimeValidator('开始时间格式有误'));
     $validator->add('end_time', new DatetimeValidator('结束时间格式有误'));
     return $this->validate($validator);
 }
Example #7
0
 public function validation()
 {
     $validator = new Validation();
     $validator->add('departure_address', new StringLength(['max' => 200, 'messageMaximum' => '出发位置的长度不能超过200字']));
     $validator->add('remark', new StringLength(['max' => 400, 'messageMaximum' => '备注的长度不能超过400字']));
     return $this->validate($validator);
 }
Example #8
0
 public function testShouldValidateUsingDigitsInDecimalValidation()
 {
     $validation = new Validation();
     $validation->add('number1', new Decimal(['places' => 2, 'digits' => 2, 'label' => 'Magic number #1', 'message' => ':field must contain valid decimal value']));
     $validation->add('number2', new Decimal(['places' => 2, 'digits' => 1, 'label' => 'Magic number #2', 'message' => ':field must contain valid decimal value']));
     $validation->validate(['number1' => '9.99', 'number2' => '6.99']);
     $messages = $validation->getMessages();
     $this->assertEquals(1, $messages->count());
     $this->assertEquals('Magic number #1 must contain valid decimal value', $messages[0]->getMessage());
     $this->assertEquals('Decimal', $messages[0]->getType());
 }
Example #9
0
 /**
  * @dataProvider providerCards
  * @param mixed $type
  * @param mixed $cardnumber
  * @param boolean $willReturn
  */
 public function testShouldValidateCardNumberForModel($type, $cardnumber, $willReturn)
 {
     $validation = new Validation();
     if ($type) {
         $validation->add('creditcard', new CardNumber(['type' => $type]));
     } else {
         $validation->add('creditcard', new CardNumber());
     }
     $messages = $validation->validate(['creditcard' => $cardnumber]);
     $this->assertNotEquals($willReturn, $messages->valid());
 }
Example #10
0
 public function validation()
 {
     $validator = new Validation();
     $validator->add('creeA', new PresenceOfValidator(array('message' => "La date de création est nécessaire")));
     $validator->add('courrierElectronique', new EmailValidator(array('field' => '', 'message' => 'Le courrier électronique est invalide')));
     $validator->add('statut', new ExclusionInValidator(array('domain' => array('X', 'Z'), 'message' => 'L\'état ne doit être "X" ou "Z"')));
     $validator->add('statut', new InclusionInValidator(array('domain' => array('P', 'I', 'w'), 'message' => 'L\'état doit être "P", "I" ou "w"')));
     $validator->add('courrierElectronique', new UniquenessValidator(array('message' => 'Le courrier électronique doit être unique', 'model' => $this)));
     $validator->validate('statut', new RegexValidator(array('pattern' => '/[A-Z]/', 'message' => "L'état ne correspond pas à l'expression régulière")));
     $validator->validate('courrierElectronique', new StringLengthValidator(array('min' => '7', 'max' => '50', 'messageMinimum' => "Le courrier électronique est trop court", 'messageMaximum' => "Le courrier électronique est trop long")));
     return $this->validate($validator);
 }
Example #11
0
 public function signup($data)
 {
     foreach ($data as $k => $v) {
         $this->{$k} = $v;
     }
     $this->confirm = 1;
     $validation = new Validation();
     $validation->add('email', new Validation\Validator\Email(array('message' => 'Указан не действительный E-mail')));
     $validation->add('email', new \App\Library\Validators\Uniqueness(array("model" => 'App\\Models\\Users', "message" => "Такой E-mail уже используется.")));
     $validation->add('fname', new Validation\Validator\PresenceOf(array('message' => 'Поле "Имя" должно быть заполнено')));
     $validation->add('fname', new Validation\Validator\StringLength(array("max" => 40, 'messageMaximum' => 'Длина текста в поле "' . $this->getLabel('fname') . '" должна быть не более 40 символов')));
     $validation->add('lname', new Validation\Validator\StringLength(array("max" => 40, 'messageMaximum' => 'Длина текста в поле "' . $this->getLabel('lname') . '" должна быть не более 40 символов')));
     $validation->add('thname', new Validation\Validator\StringLength(array("max" => 40, 'messageMaximum' => 'Длина текста в поле "' . $this->getLabel('thname') . '" должна быть не более 40 символов')));
     $validation->add('password', new Validation\Validator\PresenceOf(array('message' => 'Пароль должен быть указан')));
     $validation->add('password', new Validation\Validator\Confirmation(array('with' => 'password_confirm', 'message' => '"Пароль" и "Повтор пароля" должны совпадать')));
     $messages = $validation->validate($data);
     if (count($messages)) {
         return $validation->getMessages();
     } else {
         if ($this->create() === true) {
             return true;
         } else {
             return $this->getMessages();
         }
     }
 }
Example #12
0
 public function createAction()
 {
     $response = new Response();
     $response->setHeader('Content-Type', 'application/json');
     if ($this->request->isPost()) {
         $validation = new Validation();
         $validation->add('profilesId', new PresenceOf(array('message' => '请选择一个角色类型')));
         $messages = $validation->validate($_POST);
         $datas = array();
         if (count($messages)) {
             foreach ($messages as $message) {
                 $datas[] = $message->getMessage();
             }
             $response->setJsonContent(array('status' => 'error', 'messages' => $datas));
         } else {
             $user = new Users();
             $user->assign(array('name' => $this->request->getPost('name', 'striptags'), 'email' => $this->request->getPost('email', 'email'), 'profilesId' => $this->request->getPost('profilesId', 'int')));
             if (!$user->save()) {
                 foreach ($user->getMessages() as $message) {
                     $datas[] = $message->getMessage();
                 }
                 $response->setJsonContent(array('status' => 'error', 'messages' => $datas));
             } else {
                 $response->setJsonContent(array('status' => 'success', 'messages' => '用户添加成功'));
             }
         }
     }
     return $response;
 }
Example #13
0
 /**
  * Login Action
  */
 public function indexAction()
 {
     //User has login yet
     if ($this->_user) {
         $this->session->remove('auth');
         unset($_SESSION);
     }
     //Regular login
     if ($this->request->isPost()) {
         $validation = new Validation();
         $validation->add('email', new Email());
         $messages = $validation->validate($this->request->getPost());
         if (count($messages)) {
             foreach ($messages as $message) {
                 $this->flashSession->error($message);
             }
             return $this->response->redirect('/admin/user/login/');
         }
         $email = strtolower($this->request->getPost('email', 'email'));
         $password = $this->request->getPost('password', 'string');
         if (Users::login($email, $password)) {
             $this->response->redirect('/admin/');
         } else {
             $this->flashSession->error('m_user_message_login__user_or_password_do_not_match');
             return $this->response->redirect('/admin/user/login/');
         }
     }
     return null;
 }
Example #14
0
 private function validation(array $param)
 {
     $validation = new Validation();
     $validation->add('module', new PresenceOf(['message' => 'O nome da aplicação é necessária.']));
     $validation->add('module', new StringLength(['max' => 20, 'min' => 2, 'messageMaximum' => 'Nome da aplicação muito grande!', 'messageMinimum' => 'Nome da aplicação muito pequeno!']));
     $validation->add('todo', new PresenceOf(['message' => 'O nome da atividade é necessário.']));
     $validation->add('todo', new StringLength(['max' => 20, 'min' => 2, 'messageMaximum' => 'Nome da atividade muito grande!', 'messageMinimum' => 'Nome da atividade muito pequeno!']));
     $validation->add('action', new PresenceOf(['message' => 'O nome da ação é necessária.']));
     $validation->add('action', new StringLength(['max' => 20, 'min' => 2, 'messageMaximum' => 'Nome da ação muito grande!', 'messageMinimum' => 'Nome da ação muito pequeno!']));
     $validation->validate($param);
     if ($validation->getMessages()->count()) {
         foreach ($validation->getMessages() as $message) {
             throw new Phalcon\Mvc\Micro\Exception($message, 401);
         }
     }
 }
Example #15
0
 /**
  * @param Validation $validator
  * @return Validation
  */
 protected function validation(Validation $validator)
 {
     if ($this->getEmail()) {
         $validator->add('email', new Email(['message' => 'The e-mail is not valid']));
     }
     return $validator;
 }
Example #16
0
 /**
  * User login
  */
 public function indexAction()
 {
     //User has login yet
     if ($this->_user) {
         $this->session->remove('auth');
         unset($_SESSION);
     }
     $this->_addSocialLogin();
     //Regular login
     if ($this->request->isPost()) {
         $validation = new Validation();
         $validation->add('email', new Email());
         $messages = $validation->validate($this->request->getPost());
         if (count($messages)) {
             foreach ($messages as $message) {
                 $this->flashSession->error($message);
             }
             $this->response->redirect('/user/login/');
             return;
         }
         $email = strtolower($this->request->getPost('email', 'email'));
         $password = $this->request->getPost('password', 'string');
         if (Users::login($email, $password)) {
             $user = Users::getCurrentUser();
             $this->flashSession->success('Hi, ' . $user['full_name']);
             $this->response->redirect('/');
         } else {
             $this->flashSession->error('User or password not match!');
             $this->response->redirect('/user/login/');
         }
     }
 }
Example #17
0
 public function testEmptyMongoIdValueWithAllowEmptyOption()
 {
     $array = ['id' => ''];
     $this->testable->setOption('allowEmpty', true);
     $this->validation->add('id', $this->testable);
     $messages = $this->validation->validate($array);
     $this->assertEquals(0, count($messages));
 }
Example #18
0
 public function testAlreadyTakenUniquenessWithCustomMessage()
 {
     $uniquenessOptions = ['table' => 'users', 'column' => 'login', 'message' => 'Login already taken.'];
     $uniqueness = new Uniqueness($uniquenessOptions, $this->getDbStub());
     $this->validation->add('login', $uniqueness);
     $messages = $this->validation->validate(['login' => 'login_taken']);
     $this->assertCount(1, $messages);
     $this->assertEquals('Login already taken.', $messages[0]);
 }
Example #19
0
 public function testShouldValidateIntOrStringOfDigits()
 {
     $this->specify('The Digit Validator does not validate digits correctly', function ($digit) {
         $validation = new Validation();
         $validation->add('amount', new Digit());
         $messages = $validation->validate(['amount' => $digit]);
         expect($messages)->count(0);
     }, ['examples' => [['123'], [123], [PHP_INT_MAX], [0xffffff], [100000], [-100000], [0], ["0"], ["00001233422003400"]]]);
 }
Example #20
0
 public function validation()
 {
     if ($_SERVER['PHWOOLCON_PHALCON_VERSION'] > '2010000') {
         $validator = new Validation();
         $validator->add('key', new StringLength(['min' => 3, 'max' => 32]));
     } else {
         $validator = new \Phalcon\Mvc\Model\Validator\StringLength(['field' => 'key', 'min' => 3, 'max' => 32]);
     }
     $this->validate($validator);
     return parent::validation();
 }
Example #21
0
 public function validation()
 {
     $validator = new Validation();
     $validator->add('email', new EmailValidator(['message' => '您填写的Email地址格式有误']));
     $validator->add('username', new UsernameValidator());
     $validator->add('password', new PasswordValidator());
     $validator->add('birthday', new DateValidator(['message' => '您填写的生日格式有误']));
     $validator->add('username', new Uniqueness(['message' => '您填写的用户名已经被注册']));
     $validator->add('email', new Uniqueness(['message' => '您填写的Email地址已经被注册']));
     $validator->add('mobile', new Uniqueness(['message' => '您填写的手机号已经被注册']));
     return $this->validate($validator);
 }
Example #22
0
 public function testCustomMessage()
 {
     $this->specify('Test URL validator works with a custom message.', function () {
         $validation = new Validation();
         $validation->add('url', new Validation\Validator\Url(['message' => 'The url is not valid']));
         $messages = $validation->validate([]);
         $expectedMessages = Validation\Message\Group::__set_state(['_messages' => [0 => Validation\Message::__set_state(['_type' => 'Url', '_message' => 'The url is not valid', '_field' => 'url', '_code' => '0'])]]);
         expect($expectedMessages)->equals($messages);
         $messages = $validation->validate(['url' => 'x=1']);
         expect($expectedMessages)->equals($messages);
         $messages = $validation->validate(['url' => 'http://phalconphp.com']);
         expect($messages)->count(0);
     });
 }
Example #23
0
 protected function checkNamespace($namespace)
 {
     $validation = new Validation();
     $validation->add('namespace', new Namespaces(['allowEmpty' => true]));
     $messages = $validation->validate(['namespace' => $namespace]);
     if (count($messages)) {
         $errors = [];
         foreach ($messages as $message) {
             $errors[] = $message->getMessage();
         }
         throw new BuilderException(sprintf('%s', implode(PHP_EOL, $errors)));
     }
     return true;
 }
Example #24
0
 public function testCustomMessage()
 {
     $this->specify('Test Email validator works with a custom message.', function () {
         $validation = new Validation();
         $validation->add('email', new Email(['message' => 'The email is not valid']));
         $messages = $validation->validate([]);
         $expectedMessages = Validation\Message\Group::__set_state(['_messages' => [0 => Validation\Message::__set_state(['_type' => 'Email', '_message' => 'The email is not valid', '_field' => 'email', '_code' => '0'])]]);
         $this->assertEquals($expectedMessages, $messages);
         $messages = $validation->validate(['email' => 'x=1']);
         expect($expectedMessages)->equals($messages);
         $messages = $validation->validate(['email' => '*****@*****.**']);
         expect($messages)->count(0);
     });
 }
Example #25
0
 public function testCustomMessage()
 {
     $this->specify('Test Between validator works with a custom message.', function () {
         $validation = new Validation();
         $validation->add('price', new Between(['minimum' => 1, 'maximum' => 3, 'message' => 'The price must be between 1 and 3']));
         $messages = $validation->validate(['price' => 5]);
         $expectedMessages = Validation\Message\Group::__set_state(['_messages' => [0 => Validation\Message::__set_state(['_type' => 'Between', '_message' => 'The price must be between 1 and 3', '_field' => 'price', '_code' => '0'])]]);
         $this->assertEquals($expectedMessages, $messages);
         $messages = $validation->validate([]);
         expect($expectedMessages)->equals($messages);
         $messages = $validation->validate(['price' => 2]);
         expect($messages)->count(0);
     });
 }
 /**
  * login
  * @param array $data
  * @return bool
  * @throws Exception
  */
 public function login($data)
 {
     if (!is_array($data)) {
         throw new Exception('Login data mas by an array');
     }
     $validation = new Validation();
     $validation->add('email', new Email(['message' => 'Invalid email', 'required' => true]))->add('password', new StringLength(['max' => 255, 'min' => 4, 'message' => 'The password must be at least 4 characters', 'required' => true]));
     $validation->validate($data);
     $this->addMessages($validation->getMessages());
     if (!empty($this->getMessages())) {
         return false;
     }
     $this->setAttributes($data);
     return $this->user()->login($this->email, $this->password);
 }
Example #27
0
 /**
  * Tests url validator with multiple field
  *
  * @author Wojciech Ślawski <*****@*****.**>
  * @since  2016-06-05
  */
 public function testMultipleField()
 {
     $this->specify('Test url validator with multiple field.', function () {
         $validation = new Validation();
         $validationMessages = ['url' => 'Url must be correct url.', 'anotherUrl' => 'AnotherUrl must be correct url.'];
         $validation->add(['url', 'anotherUrl'], new Validation\Validator\Url(['message' => $validationMessages]));
         $messages = $validation->validate(['url' => 'http://google.com', 'anotherUrl' => 'http://google.com']);
         expect($messages->count())->equals(0);
         $messages = $validation->validate(['url' => '://google.', 'anotherUrl' => 'http://google.com']);
         expect($messages->count())->equals(1);
         expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['url']);
         $messages = $validation->validate(['url' => '://google.', 'anotherUrl' => '://google.']);
         expect($messages->count())->equals(2);
         expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['url']);
         expect($messages->offsetGet(1)->getMessage())->equals($validationMessages['anotherUrl']);
     });
 }
Example #28
0
 /**
  * Tests date validator with multiple field
  *
  * @author Wojciech Ślawski <*****@*****.**>
  * @since  2016-06-05
  */
 public function testMultipleField()
 {
     $this->specify('Test date validator with multiple field.', function () {
         $validation = new Validation();
         $validationMessages = ['date' => 'Date must be correct date formay Y-m-d.', 'anotherDate' => 'AnotherDate must be correct date format d-m-Y.'];
         $validation->add(['date', 'anotherDate'], new Date(['format' => ['date' => 'Y-m-d', 'anotherDate' => 'd-m-Y'], 'message' => $validationMessages]));
         $messages = $validation->validate(['date' => '2016-06-05', 'anotherDate' => '05-06-2016']);
         expect($messages->count())->equals(0);
         $messages = $validation->validate(['date' => '2016-06-32', 'anotherDate' => '05-06-2016']);
         expect($messages->count())->equals(1);
         expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['date']);
         $messages = $validation->validate(['date' => '2016-06-32', 'anotherDate' => '32-06-2016']);
         expect($messages->count())->equals(2);
         expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['date']);
         expect($messages->offsetGet(1)->getMessage())->equals($validationMessages['anotherDate']);
     });
 }
Example #29
0
 /**
  * Tests credit card validator with multiple field
  *
  * @author Wojciech Ślawski <*****@*****.**>
  * @since  2016-06-05
  */
 public function testMultipleField()
 {
     $this->specify('Test credit card validator with multiple field.', function () {
         $validation = new Validation();
         $validationMessages = ['creditCard' => 'CreditCard must be correct credit card value.', 'anotherCreditCard' => 'AnotherCreditCard must be correct credit card value.'];
         $validation->add(['creditCard', 'anotherCreditCard'], new CreditCard(['message' => $validationMessages]));
         $messages = $validation->validate(['creditCard' => 4601587377626131, 'anotherCreditCard' => 4601587377626131]);
         expect($messages->count())->equals(0);
         $messages = $validation->validate(['creditCard' => 46015873776261312, 'anotherCreditCard' => 4601587377626131]);
         expect($messages->count())->equals(1);
         expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['creditCard']);
         $messages = $validation->validate(['creditCard' => 46015873776261312, 'anotherCreditCard' => 46015873776261312]);
         expect($messages->count())->equals(2);
         expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['creditCard']);
         expect($messages->offsetGet(1)->getMessage())->equals($validationMessages['anotherCreditCard']);
     });
 }
Example #30
0
 /**
  * Tests alnum validator with multiple field
  *
  * @author Wojciech Ślawski <*****@*****.**>
  * @since  2016-06-05
  */
 public function testMultipleField()
 {
     $this->specify('Test alnum validator with multiple field.', function () {
         $validation = new Validation();
         $validationMessages = ['name' => 'Name must be alnum', 'type' => 'Type must be alnum'];
         $validation->add(['name', 'type'], new Alnum(['message' => $validationMessages]));
         $messages = $validation->validate(['name' => 'SomeValue123', 'type' => 'SomeValue123']);
         expect($messages->count())->equals(0);
         $messages = $validation->validate(['name' => 'SomeValue123!@#', 'type' => 'SomeValue123']);
         expect($messages->count())->equals(1);
         expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['name']);
         $messages = $validation->validate(['name' => 'SomeValue123!@#', 'type' => 'SomeValue123!@#']);
         expect($messages->count())->equals(2);
         expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['name']);
         expect($messages->offsetGet(1)->getMessage())->equals($validationMessages['type']);
     });
 }