From 2fbc53d1f5d9e0a000717642d02558453bc610a8 Mon Sep 17 00:00:00 2001 From: wei <> Date: Tue, 18 Jul 2006 23:39:13 +0000 Subject: Add more tests and business code for time-tracker --- .../protected/pages/TimeTracker/SiteMap.php | 2 +- .../protected/pages/TimeTracker/UserCreate.page | 136 +++++++++++---------- .../protected/pages/TimeTracker/UserCreate.php | 64 +++++++--- .../protected/pages/TimeTracker/UserList.page | 30 +++++ .../protected/pages/TimeTracker/UserList.php | 34 ++++++ 5 files changed, 185 insertions(+), 81 deletions(-) create mode 100644 demos/time-tracker/protected/pages/TimeTracker/UserList.php (limited to 'demos/time-tracker/protected/pages/TimeTracker') diff --git a/demos/time-tracker/protected/pages/TimeTracker/SiteMap.php b/demos/time-tracker/protected/pages/TimeTracker/SiteMap.php index 1f452894..1beed757 100644 --- a/demos/time-tracker/protected/pages/TimeTracker/SiteMap.php +++ b/demos/time-tracker/protected/pages/TimeTracker/SiteMap.php @@ -43,7 +43,7 @@ class SiteMap extends TTemplateControl case 'ReportResource': $active = $this->ReportMenu; break; - case 'TimeEntry': + default: $active = $this->LogMenu; break; } diff --git a/demos/time-tracker/protected/pages/TimeTracker/UserCreate.page b/demos/time-tracker/protected/pages/TimeTracker/UserCreate.page index 41d97391..edc22bcd 100644 --- a/demos/time-tracker/protected/pages/TimeTracker/UserCreate.page +++ b/demos/time-tracker/protected/pages/TimeTracker/UserCreate.page @@ -2,74 +2,86 @@

Create New User

User Details -

Sign Up for Your New Account

-
- - * - - - -
-
- - * - - - -
-
- - * - - -
-
- - * - - - -
- User->isInRole('admin') %> > + + +

Sign Up for Your New Account

+
+ + * + + + +
+
+ + * + + + +
+
+ + * + + +
+ +
+ * - -
-
- -
+ + + + New account has been successfully created. + User->isInRole('admin') %> CssClass="wizardNav"> + + + +
\ No newline at end of file diff --git a/demos/time-tracker/protected/pages/TimeTracker/UserCreate.php b/demos/time-tracker/protected/pages/TimeTracker/UserCreate.php index f163ecd6..ed8ea4f1 100644 --- a/demos/time-tracker/protected/pages/TimeTracker/UserCreate.php +++ b/demos/time-tracker/protected/pages/TimeTracker/UserCreate.php @@ -11,8 +11,10 @@ */ /** - * Create new user page class. Validate that the usernames are unique - * and set the new user credentials as the current application credentials. + * Create new user wizard page class. Validate that the usernames are unique and + * set the new user credentials as the current application credentials. + * + * If logged in as admin, the user role can be change during creation. * * @author Wei Zhuo * @version $Revision: $ $16/07/2006: $ @@ -21,6 +23,18 @@ */ class UserCreate extends TPage { + /** + * Sets the default new user roles, default role is set in config.xml + */ + public function onLoad($param) + { + if(!$this->IsPostBack) + { + $this->role->SelectedValue = + $this->Application->Parameters['NewUserRoles']; + } + } + /** * Verify that the username is not taken. * @param TControl custom validator that created the event. @@ -29,12 +43,27 @@ class UserCreate extends TPage public function checkUsername($sender, $param) { $userDao = $this->Application->Modules['daos']->getDao('UserDao'); - $user = $userDao->getUserByName($this->username->Text); - if(!is_null($user)) + if($userDao->usernameExists($this->username->Text)) { $param->IsValid = false; $sender->ErrorMessage = - "The user name is already taken, try '{$user->Name}01'"; + "The user name is already taken, try '{$this->username->Text}01'"; + } + } + + /** + * Skip the role assignment step if not admin. + */ + public function userWizardNextStep($sender, $param) + { + if($param->CurrentStepIndex == 0) + { + //create user with admin credentials + if(!$this->User->isInRole('admin')) + { + $this->createNewUser($sender, $param); + $param->NextStepIndex = 2; + } } } @@ -54,31 +83,30 @@ class UserCreate extends TPage $newUser->EmailAddress = $this->email->Text; $newUser->Name = $this->username->Text; $newUser->IsGuest = false; - if($this->User->isInRole('admin')) - $newUser->Roles = $this->role->SelectedValue; - else - $newUser->Roles = $this->Application->Parameters['NewUserRoles']; + $newUser->Roles = $this->role->SelectedValue; //save the user $userDao = $this->Application->Modules['daos']->getDao('UserDao'); $userDao->addNewUser($newUser, $this->password->Text); - //update the user + //update the user credentials if not admin if(!$this->User->isInRole('admin')) { $auth = $this->Application->getModule('auth'); $auth->updateCredential($newUser); - - //return to requested page - $this->Response->redirect($auth->getReturnUrl()); } - else - $this->Response->reload(); - //goto default page. - //$url = $this->Service->constructUrl($this->Service->DefaultPage); - //$this->Response->redirect($url); } } + + /** + * Continue with requested page. + */ + public function wizardCompleted($sender, $param) + { + //return to requested page + $auth = $this->Application->getModule('auth'); + $this->Response->redirect($auth->getReturnUrl()); + } } ?> \ No newline at end of file diff --git a/demos/time-tracker/protected/pages/TimeTracker/UserList.page b/demos/time-tracker/protected/pages/TimeTracker/UserList.page index 48b2bbc7..f0c88112 100644 --- a/demos/time-tracker/protected/pages/TimeTracker/UserList.page +++ b/demos/time-tracker/protected/pages/TimeTracker/UserList.page @@ -1,3 +1,33 @@

List Users

+
+ User List + + + + + + + + + + + + + + + + + + + + + + +
User NameE-Mail Address
<%#$this->DataItem->Name %><%#$this->DataItem->EmailAddress %>
<%#$this->DataItem->Name %><%#$this->DataItem->EmailAddress %>
+ +
+
+ Create New User +
\ No newline at end of file diff --git a/demos/time-tracker/protected/pages/TimeTracker/UserList.php b/demos/time-tracker/protected/pages/TimeTracker/UserList.php new file mode 100644 index 00000000..175a731a --- /dev/null +++ b/demos/time-tracker/protected/pages/TimeTracker/UserList.php @@ -0,0 +1,34 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2006 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $18/07/2006: $ + * @package Demos + */ + +/** + * List all users in a repeater. + * + * @author Wei Zhuo + * @version $Revision: $ $18/07/2006: $ + * @package Demos + * @since 3.1 + */ +class UserList extends TPage +{ + /** + * Load all the users and display them in a repeater. + */ + function onLoad($param) + { + $userDao = $this->Application->Modules['daos']->getDao('UserDao'); + $this->list->DataSource = $userDao->getAllUsers(); + $this->list->dataBind(); + } +} + +?> \ No newline at end of file -- cgit v1.2.3