summaryrefslogtreecommitdiff
path: root/framework/cli/views/webapp/protected/models
diff options
context:
space:
mode:
authorPatrick Seeger <pseeger@ccwn.org>2012-04-13 23:11:05 +0200
committerPatrick Seeger <pseeger@ccwn.org>2012-04-13 23:11:05 +0200
commit341cc4dd9c53ffbfb863e026dd58549c1082c7a7 (patch)
tree1bbbed20313bafb9b063b6b4d894fe580d8b000f /framework/cli/views/webapp/protected/models
yii-framework 1.1.10 hinzugefügtHEADmaster
Diffstat (limited to 'framework/cli/views/webapp/protected/models')
-rw-r--r--framework/cli/views/webapp/protected/models/ContactForm.php42
-rw-r--r--framework/cli/views/webapp/protected/models/LoginForm.php77
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;
+ }
+}