From 7a82beb752d51e2d0a1c16446a5e27738192aaf3 Mon Sep 17 00:00:00 2001 From: Felix Rabinovich Date: Wed, 24 Dec 2008 19:59:12 +0000 Subject: Adding user --- modules/user/controllers/users.php | 17 ++++++++++++++++- modules/user/helpers/user.php | 11 +++++++++++ modules/user/views/admin_users.html.php | 16 +++++++++++++++- 3 files changed, 42 insertions(+), 2 deletions(-) (limited to 'modules') diff --git a/modules/user/controllers/users.php b/modules/user/controllers/users.php index 46fd52dd..0ea6b403 100644 --- a/modules/user/controllers/users.php +++ b/modules/user/controllers/users.php @@ -32,7 +32,22 @@ class Users_Controller extends REST_Controller { * @see Rest_Controller::_create($resource) */ public function _create($user) { - throw new Exception("@todo User_Controller::_create NOT IMPLEMENTED"); + if ($user->guest || (!user::active()->admin && $user->id != user::active()->id)) { + access::forbidden(); + } + + $form = user::get_add_form($user, ""); + if ($form->validate()) { + $user->name = $form->edit_user->uname->value; + $user->full_name = $form->edit_user->full_name->value; + $user->password = $form->edit_user->password->value; + $user->email = $form->edit_user->email->value; + $user->save(); + if ($continue = $this->input->get("continue")) { + url::redirect($continue); + } + } + print $form; } /** diff --git a/modules/user/helpers/user.php b/modules/user/helpers/user.php index 8ae4d02a..0f5520e7 100644 --- a/modules/user/helpers/user.php +++ b/modules/user/helpers/user.php @@ -36,6 +36,17 @@ class user_Core { return $form; } + public static function get_add_form($user, $action) { + $form = new Forge($action, "", "post", array("id" => "gUserAddForm")); + $group = $form->group("add_user")->label(_("Add User")); + $group->input("uname")->label(_("Name"))->id("gName"); + $group->input("full_name")->label(_("Full Name"))->id("gFullName"); + $group->password("password")->label(_("Password"))->id("gPassword"); + $group->input("email")->label(_("Email"))->id("gEmail"); + $group->submit(_("Add")); + $form->add_rules_from($user); + return $form; + } /** * Make sure that we have a session and group_ids cached in the session. */ diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index 6e544c41..9792b740 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -10,7 +10,7 @@ name ?> last_login == 0) ? "" : "(" . date("M j, Y", $user->last_login) . ")" ?>
- edit + edit

+
  • Add user +
    + set_attr("id", "gEdit" . $user->id); + print $form; + ?> +
    +
  • +

    Group Administration

    +
    +

    These are the groups in your system

    +
    -- cgit v1.2.3