diff options
Diffstat (limited to 'modules/user')
-rw-r--r-- | modules/user/controllers/users.php | 6 | ||||
-rw-r--r-- | modules/user/helpers/user.php | 22 | ||||
-rw-r--r-- | modules/user/helpers/user_installer.php | 1 |
3 files changed, 27 insertions, 2 deletions
diff --git a/modules/user/controllers/users.php b/modules/user/controllers/users.php index 7ccab28f..a285b32d 100644 --- a/modules/user/controllers/users.php +++ b/modules/user/controllers/users.php @@ -29,9 +29,13 @@ class Users_Controller extends REST_Controller { $form->edit_user->password->rules("-required"); if ($form->validate()) { // @todo: allow the user to change their name + // @todo: handle password changing gracefully $user->full_name = $form->edit_user->full_name->value; - $user->password = $form->edit_user->password->value; + if ($form->edit_user->password->value) { + $user->password = $form->edit_user->password->value; + } $user->email = $form->edit_user->email->value; + $user->url = $form->edit_user->url->value; $user->save(); print json_encode( diff --git a/modules/user/helpers/user.php b/modules/user/helpers/user.php index cc70d874..377a1036 100644 --- a/modules/user/helpers/user.php +++ b/modules/user/helpers/user.php @@ -31,6 +31,7 @@ class user_Core { $group->input("full_name")->label(t("Full Name"))->id("gFullName")->value($user->full_name); $group->password("password")->label(t("Password"))->id("gPassword"); $group->input("email")->label(t("Email"))->id("gEmail")->value($user->email); + $group->input("url")->label(t("URL"))->id("gUrl")->value($user->url); $group->submit(t("Save")); $form->add_rules_from($user); return $form; @@ -45,6 +46,7 @@ class user_Core { $group->input("full_name")->label(t("Full Name"))->id("gFullName")->value($user->full_name); $group->password("password")->label(t("Password"))->id("gPassword"); $group->input("email")->label(t("Email"))->id("gEmail")->value($user->email); + $group->input("url")->label(t("URL"))->id("gUrl")->value($user->url); $group->submit(t("Modify User")); $form->add_rules_from($user); return $form; @@ -59,6 +61,7 @@ class user_Core { $group->input("full_name")->label(t("Full Name"))->id("gFullName"); $group->password("password")->label(t("Password"))->id("gPassword"); $group->input("email")->label(t("Email"))->id("gEmail"); + $group->input("url")->label(t("URL"))->id("gUrl")->value($user->url); $group->submit(t("Add User")); $user = ORM::factory("user"); $form->add_rules_from($user); @@ -213,7 +216,7 @@ class user_Core { } /** - * Perform the post authentication processing + * Log in as a given user. * @param object $user the user object. */ public static function login($user) { @@ -225,6 +228,10 @@ class user_Core { module::event("user_login", $user); } + /** + * Log out the active user and destroy the session. + * @param object $user the user object. + */ public static function logout() { $user = user::active(); if (!$user->guest) { @@ -238,6 +245,19 @@ class user_Core { } /** + * Look up a user by id. + * @param integer $id the user id + * @return User_Model the user object, or null if the id was invalid. + */ + public static function lookup($id) { + $user = model_cache::get("user", $id); + if ($user->loaded) { + return $user; + } + return null; + } + + /** * Create a hashed password using md5 plus salt. * @param string $password plaintext password * @param string $salt (optional) salt or hash containing salt (randomly generated if omitted) diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index 731a4a9e..1cbb2502 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -33,6 +33,7 @@ class user_installer { `email` varchar(64) default NULL, `admin` BOOLEAN default 0, `guest` BOOLEAN default 0, + `url` varchar(255) default NULL, PRIMARY KEY (`id`), UNIQUE KEY(`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); |