diff options
-rw-r--r-- | modules/user/controllers/users.php | 17 | ||||
-rw-r--r-- | modules/user/helpers/user.php | 11 | ||||
-rw-r--r-- | modules/user/views/admin_users.html.php | 16 |
3 files changed, 42 insertions, 2 deletions
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 @@ <?= $user->name ?> <?= ($user->last_login == 0) ? "" : "(" . date("M j, Y", $user->last_login) . ")" ?> <br /> - <a href="#">edit</a> <!-- url::site("admin/users/edit/$user->id") --> + <a href="#">edit</a> <div> <? $form = user::get_edit_form($user, @@ -25,6 +25,20 @@ <br /><br /> </li> <? endforeach ?> + <li><a href="#">Add user</a> + <div> + <? + $form = user::get_add_form($user, + "users/add?_method=post&continue=/admin/users"); + $form->set_attr("id", "gEdit" . $user->id); + print $form; + ?> + </div> + </li> </ul> </div> + <h2>Group Administration</h2> + <div class="gBlockContent"> + <p>These are the groups in your system</p> + </div> </div> |