add validation methods to classes

darcs-hash:20080520185756-84dde-290bc12cddfc1738a96385e95821d466eff11196.gz
This commit is contained in:
Evan Prodromou 2008-05-20 14:57:56 -04:00
parent a9c57467e7
commit 5d1a6f0fef
7 changed files with 75 additions and 0 deletions

View File

@ -25,4 +25,16 @@ class Avatar extends DB_DataObject
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
function validateMediatype() {
return Validate::string($this->mediatype, array('min_length' => 1, 'max_length' => 32));
}
function validateFilename() {
return Validate::string($this->filename, array('min_length' => 1, 'max_length' => 255));
}
function validateUrl() {
return Validate::uri($this->url, array('allowed_schemes' => array('http', 'https')));
}
}

View File

@ -52,4 +52,13 @@ class Notice extends DB_DataObject
}
return $this->profile;
}
function validateContent() {
return Validate::string($this->content, array('min_length' => 1, 'max_length' => 140));
}
function validateUrl() {
return is_null($this->url) ||
Validate::uri($this->url, array('allowed_schemes' => array('http', 'https')));
}
}

View File

@ -72,4 +72,33 @@ class Profile extends DB_DataObject
return NULL;
}
}
function validateNickname() {
return Validate::string($this->nickname, array('min_length' => 1, 'max_length' => 64,
'format' => VALIDATE_ALPHA_LOWER . VALIDATE_NUM));
}
function validateProfileurl() {
return Validate::uri($this->profileurl, array('allowed_schemes' => array('http', 'https')));
}
function validateHomepage() {
return (is_null($this->homepage) ||
Validate::uri($this->homepage, array('allowed_schemes' => array('http', 'https'))));
}
function validateBio() {
return is_null($this->bio) ||
Validate::string($this->bio, array('min_length' => 1, 'max_length' => 140));
}
function validateLocation() {
return is_null($this->location) ||
Validate::string($this->location, array('min_length' => 1, 'max_length' => 255));
}
function validateFullname() {
return is_null($this->fullname) ||
Validate::string($this->fullname, array('min_length' => 1, 'max_length' => 255));
}
}

View File

@ -40,4 +40,9 @@ class Remote_profile extends DB_DataObject
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
function validateUrl() {
return is_null($this->url) ||
Validate::uri($this->url, array('allowed_schemes' => array('http', 'https')));
}
}

View File

@ -22,6 +22,7 @@ if (!defined('LACONICA')) { exit(1); }
* Table Definition for user
*/
require_once 'DB/DataObject.php';
require_once 'Validate.php';
class User extends DB_DataObject
{
@ -59,4 +60,13 @@ class User extends DB_DataObject
$sub->subscribed = $other->id;
return $sub->find();
}
function validateEmail() {
return Validate::email($this->email, true);
}
function validateNickname() {
return Validate::string($this->nickname, array('min_length' => 1, 'max_length' => 64,
'format' => VALIDATE_ALPHA_LOWER . VALIDATE_NUM));
}
}

6
doc/README Normal file
View File

@ -0,0 +1,6 @@
This package requires PHP 5.x and the following PHP Pear libraries:
- DB_DataObject
- Validate
- XMLWriter

View File

@ -53,6 +53,10 @@
- site logo
- instructions
- deal with PHP quotes escaping
- fix layout of textarea
- make notices into "big links"
- fix spacing on notices
- limit entry in textarea to 140 chars
- release 0.2
- set Last-Modified
- XML sitemap generation