Exemple #1
0
 public function validate()
 {
     // check for a valid library object
     if (!is_a($this->library, 'Library')) {
         throw new Exception('The library object is invalid');
     }
     // check for all required fields
     foreach (static::$required as $field) {
         if (empty($this->data[$field])) {
             throw new Exception('Missing required field: ' . $field);
         }
     }
     // id validation
     if (!is_string($this->data['id']) or !v::alphanum($this->data['id']) or str::length($this->data['id']) !== 32) {
         throw new Exception('Invalid id');
     }
     // type validation
     if (!is_string($this->data['type']) or !v::between($this->data['type'], 2, 32)) {
         throw new Exception('Invalid type');
     }
     // status validation
     if (!in_array($this->data['status'], static::$statuses)) {
         throw new Exception('Invalid status: ' . $this->data['status']);
     }
     // check for invalid updated timestamp
     if (!is_int($this->data['updated']) or !v::between(date('Y', $this->data['updated']), 1980, 2500)) {
         throw new Exception('Invalid updated timestamp');
     }
     // check for invalid created timestamp
     if (!is_int($this->data['created']) or !v::between(date('Y', $this->data['created']), 1980, 2500) or $this->data['created'] > time()) {
         throw new Exception('Invalid created timestamp');
     }
 }
Exemple #2
0
 public function testAlphaNum()
 {
     $this->assertTrue(v::alphanum('abc1234'));
     $this->assertFalse(v::alphanum('#!asdas'));
 }
 *
 * @return  boolean
 */
v::$validators['requiredWith'] = function ($key, $dependency, $array) {
    return !empty($array[$dependency]) && v::required($key, $array);
};
/**
 * Required (Conditionally)
 *
 * Field has to be present only if the other specified field IS NOT present.
 *
 * @param   string  $key         Name of the field to test.
 * @param   string  $dependency  Name of the field the actual field depends on.
 * @param   array   $array       Collection of data values.
 *
 * @return  boolean
 */
v::$validators['requiredWithout'] = function ($key, $dependency, $array) {
    return !empty($array[$dependency]) || v::required($key, $array);
};
/**
 * Username Validator
 *
 * Ensures the given user name exists in the system.
 *
 * @param mixed  $value  Value to test.
 * @return  boolean
 */
v::$validators['user'] = function ($value) {
    return v::alphanum($value) && kirby()->site()->users()->find($value);
};