From 6e0338629774fffe5fbe7136dfce34ce83844a5c Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 30 May 2006 03:26:33 +0000 Subject: Blog demo is completed. --- demos/blog/protected/Pages/Users/EditUser.page | 31 +++++++++-------- demos/blog/protected/Pages/Users/EditUser.php | 38 +++++++++++++++++---- demos/blog/protected/Pages/Users/NewUser.page | 47 +++++++++++++++----------- demos/blog/protected/Pages/Users/NewUser.php | 31 +++++++++++++++-- demos/blog/protected/Pages/Users/ViewUser.page | 47 ++++++++++++++++++-------- demos/blog/protected/Pages/Users/ViewUser.php | 41 +++++++++++++++++----- 6 files changed, 171 insertions(+), 64 deletions(-) (limited to 'demos/blog/protected/Pages/Users') diff --git a/demos/blog/protected/Pages/Users/EditUser.page b/demos/blog/protected/Pages/Users/EditUser.page index 8c21fd50..0155dc26 100644 --- a/demos/blog/protected/Pages/Users/EditUser.page +++ b/demos/blog/protected/Pages/Users/EditUser.page @@ -1,14 +1,12 @@ - - -

Update Profile

+<%@ Title="Edit Profile" %> - + -Username -
- +

Update Profile:

-
+ Full name
@@ -26,7 +24,7 @@ RegularExpression="[\w\.]{6,16}" Text="*" ErrorMessage="Your password must contain only letters, digits and underscores, and it must contain at least 6 and at most 16 characters." - ControlCssClass="inputerror" /> + ControlCssClass="input-error1" />
@@ -40,7 +38,7 @@ Display="Dynamic" Text="*" ErrorMessage="Your password entries did not match." - ControlCssClass="inputerror" /> + ControlCssClass="input-error3" />
@@ -52,23 +50,28 @@ ValidationGroup="user" Text="*" ErrorMessage="Please provide your email address." - ControlCssClass="inputerror" /> + ControlCssClass="input-error1" /> + ControlCssClass="input-error2" />
Personal Website
- + +

- +
\ No newline at end of file diff --git a/demos/blog/protected/Pages/Users/EditUser.php b/demos/blog/protected/Pages/Users/EditUser.php index e3efcfd1..73eef8bb 100644 --- a/demos/blog/protected/Pages/Users/EditUser.php +++ b/demos/blog/protected/Pages/Users/EditUser.php @@ -1,13 +1,39 @@ + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2006 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $Date: $ + */ +/** + * EditUser class + * + * @author Qiang Xue + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2006 PradoSoft + * @license http://www.pradosoft.com/license/ + */ class EditUser extends BlogPage { - public function getCurrentUser() + private $_userRecord=null; + + public function onInit($param) { - if(($user=$this->DataAccess->queryUserByID($this->User->ID))!==null) - return $user; + parent::onInit($param); + if(($id=$this->Request['id'])!==null) + { + $id=TPropertyValue::ensureInteger($id); + if(!$this->User->IsAdmin && $this->User->ID!==$id) + throw new BlogException(500,'profile_edit_disallowed',$id); + } else - throw new BlogException('xxx'); + $id=$this->User->ID; + if(($this->_userRecord=$this->DataAccess->queryUserByID($id))===null) + throw new BlogException(500,'profile_id_invalid',$id); } public function onLoad($param) @@ -15,7 +41,7 @@ class EditUser extends BlogPage parent::onLoad($param); if(!$this->IsPostBack) { - $userRecord=$this->getCurrentUser(); + $userRecord=$this->_userRecord; $this->Username->Text=$userRecord->Name; $this->FullName->Text=$userRecord->FullName; $this->Email->Text=$userRecord->Email; @@ -27,7 +53,7 @@ class EditUser extends BlogPage { if($this->IsValid) { - $userRecord=$this->getCurrentUser(); + $userRecord=$this->_userRecord; if($this->Password->Text!=='') $userRecord->Password=md5($this->Password->Text); $userRecord->FullName=$this->FullName->Text; diff --git a/demos/blog/protected/Pages/Users/NewUser.page b/demos/blog/protected/Pages/Users/NewUser.page index eba2dcec..f096ffb1 100644 --- a/demos/blog/protected/Pages/Users/NewUser.page +++ b/demos/blog/protected/Pages/Users/NewUser.page @@ -1,35 +1,39 @@ +<%@ Title="Create New Account" %> +

Create New Account

- + Username
+ ControlCssClass="input-error1" /> + ControlCssClass="input-error2" /> + ControlCssClass="input-error3" />
@@ -44,19 +48,19 @@ + ControlCssClass="input-error1" /> + ControlCssClass="input-error2" />
@@ -66,11 +70,11 @@ + ControlCssClass="input-error3" />
@@ -79,26 +83,31 @@ + ControlCssClass="input-error1" /> + ControlCssClass="input-error2" />
Personal Website
- + +

- +
\ No newline at end of file diff --git a/demos/blog/protected/Pages/Users/NewUser.php b/demos/blog/protected/Pages/Users/NewUser.php index 166abf66..50a8100b 100644 --- a/demos/blog/protected/Pages/Users/NewUser.php +++ b/demos/blog/protected/Pages/Users/NewUser.php @@ -1,10 +1,33 @@ + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2006 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $Date: $ + */ +/** + * NewUser class + * + * @author Qiang Xue + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2006 PradoSoft + * @license http://www.pradosoft.com/license/ + */ class NewUser extends BlogPage { + public function onInit($param) + { + if(!$this->User->IsAdmin && !TPropertyValue::ensureBoolean($this->Application->Parameters['MultipleUser'])) + throw new BlogException(500,'newuser_registration_disallowed'); + } + public function checkUsername($sender,$param) { - $username=$this->Username->Text; + $username=strtolower($this->Username->Text); $param->IsValid=$this->DataAccess->queryUserByName($username)===null; } @@ -13,13 +36,17 @@ class NewUser extends BlogPage if($this->IsValid) { $userRecord=new UserRecord; - $userRecord->Name=$this->Username->Text; + $userRecord->Name=strtolower($this->Username->Text); $userRecord->FullName=$this->FullName->Text; $userRecord->Role=0; $userRecord->Password=md5($this->Password->Text); $userRecord->Email=$this->Email->Text; $userRecord->CreateTime=time(); $userRecord->Website=$this->Website->Text; + if(TPropertyValue::ensureBoolean($this->Application->Parameters['AccountApproval'])) + $userRecord->Status=UserRecord::STATUS_PENDING; + else + $userRecord->Status=UserRecord::STATUS_NORMAL; $this->DataAccess->insertUser($userRecord); $authManager=$this->Application->getModule('auth'); $authManager->login($this->Username->Text,$this->Password->Text); diff --git a/demos/blog/protected/Pages/Users/ViewUser.page b/demos/blog/protected/Pages/Users/ViewUser.page index 2dba6b77..faae720b 100644 --- a/demos/blog/protected/Pages/Users/ViewUser.page +++ b/demos/blog/protected/Pages/Users/ViewUser.page @@ -1,21 +1,40 @@ +<%@ Title="View User Profile" %> +

User Profile

-Username: <%= $this->CurrentUser->Name %> -
- -Full name: <%= $this->CurrentUser->FullName %> -
- -Email: <%= $this->CurrentUser->Email %> + + + + + + + + + + + + + + + + + + + + + + + + + +
Username<%= $this->Profile->Name %>
Full name<%= htmlentities($this->Profile->FullName,ENT_QUOTES,'UTF-8') %>
Email<%= $this->Profile->Email %>
Role<%= $this->Profile->Role===0? 'Normal user':'Administrator' %>
Website<%= htmlentities($this->Profile->Website,ENT_QUOTES,'UTF-8') %>
Member since<%= date('l, F j, Y',$this->Profile->CreateTime) %>

- -Privilege: <%= $this->CurrentUser->Role===0? 'User':'Administrator' %> -
- -Personal website: <%= $this->CurrentUser->Website %> -
- +Service->constructUrl('Users.EditUser',array('id'=>$this->Profile->ID)) %> + Visible=<%= $this->User->IsAdmin || $this->Profile->ID===$this->User->ID %> + CssClass="link-button" />
\ No newline at end of file diff --git a/demos/blog/protected/Pages/Users/ViewUser.php b/demos/blog/protected/Pages/Users/ViewUser.php index 3485f56b..453ae349 100644 --- a/demos/blog/protected/Pages/Users/ViewUser.php +++ b/demos/blog/protected/Pages/Users/ViewUser.php @@ -1,18 +1,41 @@ + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2006 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $Date: $ + */ +/** + * ViewUser class + * + * @author Qiang Xue + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2006 PradoSoft + * @license http://www.pradosoft.com/license/ + */ class ViewUser extends BlogPage { - private $_currentUser=null; + private $_userRecord=null; - public function getCurrentUser() + public function onInit($param) { - if($this->_currentUser===null) - { - $id=TPropertyValue::ensureInteger($this->Request['id']); - if(($this->_currentUser=$this->DataAccess->queryUserByID($id))===null) - throw new BlogException('xxx'); - } - return $this->_currentUser; + parent::onInit($param); + if(($id=$this->Request['id'])!==null) + $id=TPropertyValue::ensureInteger($id); + else + $id=$this->User->ID; + if(($this->_userRecord=$this->DataAccess->queryUserByID($id))===null) + throw new BlogException(500,'profile_id_invalid',$id); + $this->_userRecord->Email=strtr(strtoupper($this->_userRecord->Email),array('@'=>' at ','.'=>' dot ')); + } + + public function getProfile() + { + return $this->_userRecord; } } -- cgit v1.2.3