From 5fce343ca45aba212fa348a90a9bbe405bb413e1 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Wed, 26 Nov 2008 03:34:39 +0000 Subject: Create user/group create/delete functions and have the scaffolding use them. --- modules/user/helpers/group.php | 52 +++++++++++++++++++++++++++++++++++ modules/user/helpers/user.php | 62 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 105 insertions(+), 9 deletions(-) create mode 100644 modules/user/helpers/group.php (limited to 'modules/user/helpers') diff --git a/modules/user/helpers/group.php b/modules/user/helpers/group.php new file mode 100644 index 00000000..95daa767 --- /dev/null +++ b/modules/user/helpers/group.php @@ -0,0 +1,52 @@ +loaded) { + throw new Exception("@todo GROUP_ALREADY_EXISTS $name"); + } + + $group->name = $name; + $group->save(); + return $group; + } + + /** + * Delete a group + * + * @param string $name the group name + */ + static function delete($name) { + ORM::factory("group")->where("name", $name)->find()->delete(); + } +} \ No newline at end of file diff --git a/modules/user/helpers/user.php b/modules/user/helpers/user.php index b424a3ad..9d387b4b 100644 --- a/modules/user/helpers/user.php +++ b/modules/user/helpers/user.php @@ -19,13 +19,11 @@ */ /** - * This helper provides a common around the user management functions. - * - * @author Tim Almdal + * This is the API for handling users. * + * Note: by design, this class does not do any permission checking. */ -class user { - +class user_Core { /** * Return the form for creating / modifying users. */ @@ -33,15 +31,61 @@ class user { $form = new Forge( url::site("users/{$user->id}?_method=put"), "", "post", array("id" => "gUserForm")); $group = $form->group(_("User Info")); - $group->input("name") ->label(_("Name")) ->id("gName") ->value($user->name); - $group->input("display_name") ->label(_("Display Name")) ->id("gDisplayName") ->value($user->display_name); - $group->password("password") ->label(_("Password")) ->id("gPassword"); - $group->input("email") ->label(_("Email")) ->id("gEmail") ->value($user->email); + + $group->input("name") + ->label(_("Name")) + ->id("gName") + ->value($user->name); + + $group->input("display_name") + ->label(_("Display Name")) + ->id("gDisplayName") + ->value($user->display_name); + + $group->password("password") + ->label(_("Password")) + ->id("gPassword"); + + $group->input("email") + ->label(_("Email")) + ->id("gEmail") + ->value($user->email); + $group->submit(_("Modify")); $form->add_rules_from($user); return $form; } + /** + * Create a new user. + * + * @param string $name + * @param string $display_name + * @param string $password + * @return User_Model + */ + static function create($name, $display_name, $password) { + $user = ORM::factory("user"); + if ($user->loaded) { + throw new Exception("@todo USER_ALREADY_EXISTS $name"); + } + + $user->name = $name; + $user->display_name = $name; + $user->password = $name; + $user->save(); + return $user; + } + + /** + * Delete a user + * + * @param string $name the user name + */ + static function delete($name) { + ORM::factory("user")->where("name", $name)->find()->delete(); + } + /** * Is the password provided correct? * -- cgit v1.2.3