From 5d1a6f0fef3b99167babfa304ceda9b67720f399 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 20 May 2008 14:57:56 -0400 Subject: [PATCH] add validation methods to classes darcs-hash:20080520185756-84dde-290bc12cddfc1738a96385e95821d466eff11196.gz --- classes/Avatar.php | 12 ++++++++++++ classes/Notice.php | 9 +++++++++ classes/Profile.php | 29 +++++++++++++++++++++++++++++ classes/Remote_profile.php | 5 +++++ classes/User.php | 10 ++++++++++ doc/README | 6 ++++++ doc/TODO | 4 ++++ 7 files changed, 75 insertions(+) create mode 100644 doc/README diff --git a/classes/Avatar.php b/classes/Avatar.php index 2e0e1f3fb5..57e0d2fa87 100644 --- a/classes/Avatar.php +++ b/classes/Avatar.php @@ -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'))); + } } diff --git a/classes/Notice.php b/classes/Notice.php index 24c8133308..3e6835ec90 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -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'))); + } } diff --git a/classes/Profile.php b/classes/Profile.php index 686a791630..4119cd4113 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -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)); + } } diff --git a/classes/Remote_profile.php b/classes/Remote_profile.php index 0aa727ad15..f36ac5f0c0 100644 --- a/classes/Remote_profile.php +++ b/classes/Remote_profile.php @@ -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'))); + } } diff --git a/classes/User.php b/classes/User.php index 8986053c58..8effd856ab 100644 --- a/classes/User.php +++ b/classes/User.php @@ -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)); + } } diff --git a/doc/README b/doc/README new file mode 100644 index 0000000000..546e4320bf --- /dev/null +++ b/doc/README @@ -0,0 +1,6 @@ +This package requires PHP 5.x and the following PHP Pear libraries: + +- DB_DataObject +- Validate +- XMLWriter + diff --git a/doc/TODO b/doc/TODO index b8bb2f708d..5105fa2178 100644 --- a/doc/TODO +++ b/doc/TODO @@ -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 -- 2.39.5