/** * Options variations: * 1. +pattern -mx (default) * 2. +pattern +mx * 3. -pattern -mx * 4. -pattern +mx * * `$emails[0]` with any `$options` or without options should be `true` * `$emails[1]` with any `$options` or without options should be `false` * `$emails[2]` with `$options[1]` should be `true` * `$emails[2]` with `$options[1]` should be `true` * * `$options[1]` works same as Lithium's default email validator implementation */ public function testEmail() { $emails = array('*****@*****.**', 'invalid.djordjekovacevic.com', 'looks.valid@djordjekovacevic.c'); $options = array(array('mx' => true), array('pattern' => false), array('pattern' => false, 'mx' => true)); $this->assertTrue(Validator::rule('email', $emails[0])); $this->assertTrue(Validator::rule('email', $emails[0], 'any', $options[0])); $this->assertTrue(Validator::rule('email', $emails[0], 'any', $options[1])); $this->assertTrue(Validator::rule('email', $emails[0], 'any', $options[2])); $this->assertFalse(Validator::rule('email', $emails[1])); $this->assertFalse(Validator::rule('email', $emails[1], 'any', $options[0])); $this->assertFalse(Validator::rule('email', $emails[1], 'any', $options[1])); $this->assertFalse(Validator::rule('email', $emails[1], 'any', $options[2])); $this->assertFalse(Validator::rule('email', $emails[2], 'any')); $this->assertTrue(Validator::rule('email', $emails[2], 'any', $options[1])); }
protected function _assignAccessors($entity) { $fields = static::_formattedFields($this->_config['fields']); $queried = $entity->export()['data']; if (0 === count(array_intersect_key($queried, $fields))) { return $entity; } foreach ($fields as $field => $name) { if (isset($_FILES[$field]['name'])) { // Attempted file upload $file = $_FILES[$field]['name']; if (Validator::rule('isUploadedFile', $file, 'any', ['field' => $field])) { // Valid file upload $entity->{$field} = new UploadableStorage($field, $name, $entity); } } else { // Read $entity->{$field} = new UploadableStorage($field, $name, $entity); } } return $entity; }
if(Validator::rule('uniqueEmail', $params['data']['email']) === false) { $params['data']['email'] = ''; } } else { // If the fields password and password_confirm both exist, then validate the password field too if((isset($params['data']['password'])) && (isset($params['data']['password_confirm']))) { if(Validator::rule('moreThanFive', $params['data']['password']) === true) { $params['data']['password'] = String::hash($params['data']['password']); // will be sha512 } } // If the new_email field was passed, the user is requesting to update their e-mail, we will set it and send an email to allow them to confirm, once confirmed it will be changed if(isset($params['data']['new_email'])) { // Unique E-mail validation if((Validator::rule('uniqueEmail', $params['data']['new_email']) === false) || (Validator::isEmail($params['data']['new_email']) === false)) { // Invalidate $params['data']['new_email'] = ''; } else { $params['data']['approval_code'] = Util::unique_string(array('hash' => 'md5')); Email::changeUserEmail(array('first_name' => $params['data']['first_name'], 'last_name' => $params['data']['last_name'], 'to' => $params['data']['new_email'], 'approval_code' => $params['data']['approval_code'])); } } } } //$data = array($params['entity']->file); //Asset::save($data); return $chain->next($self, $params, $chain);