diff options
| author | Patrick Seeger <pseeger@ccwn.org> | 2012-04-13 23:11:05 +0200 |
|---|---|---|
| committer | Patrick Seeger <pseeger@ccwn.org> | 2012-04-13 23:11:05 +0200 |
| commit | 341cc4dd9c53ffbfb863e026dd58549c1082c7a7 (patch) | |
| tree | 1bbbed20313bafb9b063b6b4d894fe580d8b000f /framework/cli/views/webapp/protected/models | |
Diffstat (limited to 'framework/cli/views/webapp/protected/models')
| -rw-r--r-- | framework/cli/views/webapp/protected/models/ContactForm.php | 42 | ||||
| -rw-r--r-- | framework/cli/views/webapp/protected/models/LoginForm.php | 77 |
2 files changed, 119 insertions, 0 deletions
diff --git a/framework/cli/views/webapp/protected/models/ContactForm.php b/framework/cli/views/webapp/protected/models/ContactForm.php new file mode 100644 index 0000000..86541cb --- /dev/null +++ b/framework/cli/views/webapp/protected/models/ContactForm.php @@ -0,0 +1,42 @@ +<?php + +/** + * ContactForm class. + * ContactForm is the data structure for keeping + * contact form data. It is used by the 'contact' action of 'SiteController'. + */ +class ContactForm extends CFormModel +{ + public $name; + public $email; + public $subject; + public $body; + public $verifyCode; + + /** + * Declares the validation rules. + */ + public function rules() + { + return array( + // name, email, subject and body are required + array('name, email, subject, body', 'required'), + // email has to be a valid email address + array('email', 'email'), + // verifyCode needs to be entered correctly + array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()), + ); + } + + /** + * Declares customized attribute labels. + * If not declared here, an attribute would have a label that is + * the same as its name with the first letter in upper case. + */ + public function attributeLabels() + { + return array( + 'verifyCode'=>'Verification Code', + ); + } +}
\ No newline at end of file diff --git a/framework/cli/views/webapp/protected/models/LoginForm.php b/framework/cli/views/webapp/protected/models/LoginForm.php new file mode 100644 index 0000000..eb36e4a --- /dev/null +++ b/framework/cli/views/webapp/protected/models/LoginForm.php @@ -0,0 +1,77 @@ +<?php + +/** + * LoginForm class. + * LoginForm is the data structure for keeping + * user login form data. It is used by the 'login' action of 'SiteController'. + */ +class LoginForm extends CFormModel +{ + public $username; + public $password; + public $rememberMe; + + private $_identity; + + /** + * Declares the validation rules. + * The rules state that username and password are required, + * and password needs to be authenticated. + */ + public function rules() + { + return array( + // username and password are required + array('username, password', 'required'), + // rememberMe needs to be a boolean + array('rememberMe', 'boolean'), + // password needs to be authenticated + array('password', 'authenticate'), + ); + } + + /** + * Declares attribute labels. + */ + public function attributeLabels() + { + return array( + 'rememberMe'=>'Remember me next time', + ); + } + + /** + * Authenticates the password. + * This is the 'authenticate' validator as declared in rules(). + */ + public function authenticate($attribute,$params) + { + if(!$this->hasErrors()) + { + $this->_identity=new UserIdentity($this->username,$this->password); + if(!$this->_identity->authenticate()) + $this->addError('password','Incorrect username or password.'); + } + } + + /** + * Logs in the user using the given username and password in the model. + * @return boolean whether login is successful + */ + public function login() + { + if($this->_identity===null) + { + $this->_identity=new UserIdentity($this->username,$this->password); + $this->_identity->authenticate(); + } + if($this->_identity->errorCode===UserIdentity::ERROR_NONE) + { + $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days + Yii::app()->user->login($this->_identity,$duration); + return true; + } + else + return false; + } +} |
