From 3c936d661a088fb43b47eb5b208958180e8f65eb Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 22 Oct 2009 13:09:20 -0700 Subject: Change the name of identity library from Identity to IdentityProvider. Create a helper class called identity to simplify call the Identity Provider. Move the contents of MY_Session.php to the new helper class and remove the MY_Session class --- modules/user/controllers/admin_users.php | 6 +- modules/user/controllers/password.php | 2 +- modules/user/controllers/users.php | 4 +- modules/user/helpers/group.php | 18 ++- .../user/libraries/drivers/Identity/Gallery.php | 150 --------------------- .../libraries/drivers/IdentityProvider/Gallery.php | 150 +++++++++++++++++++++ modules/user/views/admin_users.html.php | 2 +- 7 files changed, 171 insertions(+), 161 deletions(-) delete mode 100644 modules/user/libraries/drivers/Identity/Gallery.php create mode 100644 modules/user/libraries/drivers/IdentityProvider/Gallery.php (limited to 'modules/user') diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php index 258de843..8b96ebd2 100644 --- a/modules/user/controllers/admin_users.php +++ b/modules/user/controllers/admin_users.php @@ -69,7 +69,7 @@ class Admin_Users_Controller extends Admin_Controller { public function delete_user($id) { access::verify_csrf(); - if ($id == Session::active_user()->id || $id == user::guest()->id) { + if ($id == identity::active_user()->id || $id == user::guest()->id) { access::forbidden(); } @@ -136,7 +136,7 @@ class Admin_Users_Controller extends Admin_Controller { } // An admin can change the admin status for any user but themselves - if ($user->id != Session::active_user()->id) { + if ($user->id != identity::active_user()->id) { $user->admin = $form->edit_user->admin->checked; } $user->save(); @@ -158,7 +158,7 @@ class Admin_Users_Controller extends Admin_Controller { $form = $this->_get_user_edit_form_admin($user); // Don't allow the user to control their own admin bit, else you can lock yourself out - if ($user->id == Session::active_user()->id) { + if ($user->id == identity::active_user()->id) { $form->edit_user->admin->disabled(1); } print $form; diff --git a/modules/user/controllers/password.php b/modules/user/controllers/password.php index a8f1c5ca..6bef1a17 100644 --- a/modules/user/controllers/password.php +++ b/modules/user/controllers/password.php @@ -46,7 +46,7 @@ class Password_Controller extends Controller { $valid = $form->validate(); if ($valid) { - $user = Identity::lookup_user_by_name($form->reset->inputs["name"]->value); + $user = identity::lookup_user_by_name($form->reset->inputs["name"]->value); if (!$user->loaded || empty($user->email)) { $form->reset->inputs["name"]->add_error("no_email", 1); $valid = false; diff --git a/modules/user/controllers/users.php b/modules/user/controllers/users.php index 0ccf3e2a..dee54f63 100644 --- a/modules/user/controllers/users.php +++ b/modules/user/controllers/users.php @@ -21,7 +21,7 @@ class Users_Controller extends Controller { public function update($id) { $user = user::lookup($id); - if ($user->guest || $user->id != Session::active_user()->id) { + if ($user->guest || $user->id != identity::active_user()->id) { access::forbidden(); } @@ -59,7 +59,7 @@ class Users_Controller extends Controller { public function form_edit($id) { $user = user::lookup($id); - if ($user->guest || $user->id != Session::active_user()->id) { + if ($user->guest || $user->id != identity::active_user()->id) { access::forbidden(); } diff --git a/modules/user/helpers/group.php b/modules/user/helpers/group.php index 8ad52564..567b2ee4 100644 --- a/modules/user/helpers/group.php +++ b/modules/user/helpers/group.php @@ -25,7 +25,10 @@ */ class group_Core { /** - * @see Identity_Driver::create. + * Create a new group. + * + * @param string $name + * @return Group_Definition the group object */ static function create($name) { $group = ORM::factory("group")->where("name", $name)->find(); @@ -39,14 +42,18 @@ class group_Core { } /** - * @see Identity_Driver::everbody. + * The group of all possible visitors. This includes the guest user. + * + * @return Group_Definition the group object */ static function everybody() { return model_cache::get("group", 1); } /** - * @see Identity_Driver::registered_users. + * The group of all logged-in visitors. This does not include guest users. + * + * @return Group_Definition the group object */ static function registered_users() { return model_cache::get("group", 2); @@ -71,7 +78,10 @@ class group_Core { } /** - * @see Identity_Driver::get_group_list. + * Search the groups by the field and value. + * @param string $field_name column to look up the user by + * @param string $value value to match + * @return Group_Definition the group object, or null if the name was invalid. */ static function lookup_by_field($field_name, $value) { try { diff --git a/modules/user/libraries/drivers/Identity/Gallery.php b/modules/user/libraries/drivers/Identity/Gallery.php deleted file mode 100644 index 36f37543..00000000 --- a/modules/user/libraries/drivers/Identity/Gallery.php +++ /dev/null @@ -1,150 +0,0 @@ -password; - - // Try phpass first, since that's what we generate. - if (strlen($valid) == 34) { - require_once(MODPATH . "user/lib/PasswordHash.php"); - $hashGenerator = new PasswordHash(10, true); - return $hashGenerator->CheckPassword($password, $valid); - } - - $salt = substr($valid, 0, 4); - // Support both old (G1 thru 1.4.0; G2 thru alpha-4) and new password schemes: - $guess = (strlen($valid) == 32) ? md5($password) : ($salt . md5($salt . $password)); - if (!strcmp($guess, $valid)) { - return true; - } - - // Passwords with <&"> created by G2 prior to 2.1 were hashed with entities - $sanitizedPassword = html::specialchars($password, false); - $guess = (strlen($valid) == 32) ? md5($sanitizedPassword) - : ($salt . md5($salt . $sanitizedPassword)); - if (!strcmp($guess, $valid)) { - return true; - } - - return false; - } - - /** - * @see Identity_Driver::lookup_user. - */ - public function lookup_user($id) { - return user::lookup_by_field("id", $id); - } - - /** - * @see Identity_Driver::lookup_user_by_name. - */ - public function lookup_user_by_name($name) { - return user::lookup_by_field("name", $name); - } - - /** - * @see Identity_Driver::create_group. - */ - public function create_group($name) { - return group::create($name); - } - - /** - * @see Identity_Driver::everybody. - */ - public function everybody() { - return group::everybody(); - } - - /** - * @see Identity_Driver::registered_users. - */ - public function registered_users() { - return group::registered_users(); - } - - /** - * @see Identity_Driver::lookup_group. - */ - public function lookup_group($id) { - return group::lookup_by_field("id", $id); - } - - /** - * @see Identity_Driver::lookup_group_by_name. - */ - public function lookup_group_by_name($name) { - return group::lookup_by_field("name", $name); - } - - /** - * @see Identity_Driver::get_user_list. - */ - public function get_user_list($ids) { - return ORM::factory("user") - ->in("id", $ids) - ->find_all() - ->as_array(); - } - - /** - * @see Identity_Driver::groups. - */ - public function groups() { - return ORM::factory("group")->find_all(); - } - -} // End Identity Gallery Driver - diff --git a/modules/user/libraries/drivers/IdentityProvider/Gallery.php b/modules/user/libraries/drivers/IdentityProvider/Gallery.php new file mode 100644 index 00000000..5941abb7 --- /dev/null +++ b/modules/user/libraries/drivers/IdentityProvider/Gallery.php @@ -0,0 +1,150 @@ +password; + + // Try phpass first, since that's what we generate. + if (strlen($valid) == 34) { + require_once(MODPATH . "user/lib/PasswordHash.php"); + $hashGenerator = new PasswordHash(10, true); + return $hashGenerator->CheckPassword($password, $valid); + } + + $salt = substr($valid, 0, 4); + // Support both old (G1 thru 1.4.0; G2 thru alpha-4) and new password schemes: + $guess = (strlen($valid) == 32) ? md5($password) : ($salt . md5($salt . $password)); + if (!strcmp($guess, $valid)) { + return true; + } + + // Passwords with <&"> created by G2 prior to 2.1 were hashed with entities + $sanitizedPassword = html::specialchars($password, false); + $guess = (strlen($valid) == 32) ? md5($sanitizedPassword) + : ($salt . md5($salt . $sanitizedPassword)); + if (!strcmp($guess, $valid)) { + return true; + } + + return false; + } + + /** + * @see IdentityProvider_Driver::lookup_user. + */ + public function lookup_user($id) { + return user::lookup_by_field("id", $id); + } + + /** + * @see IdentityProvider_Driver::lookup_user_by_name. + */ + public function lookup_user_by_name($name) { + return user::lookup_by_field("name", $name); + } + + /** + * @see IdentityProvider_Driver::create_group. + */ + public function create_group($name) { + return group::create($name); + } + + /** + * @see IdentityProvider_Driver::everybody. + */ + public function everybody() { + return group::everybody(); + } + + /** + * @see IdentityProvider_Driver::registered_users. + */ + public function registered_users() { + return group::registered_users(); + } + + /** + * @see IdentityProvider_Driver::lookup_group. + */ + public function lookup_group($id) { + return group::lookup_by_field("id", $id); + } + + /** + * @see IdentityProvider_Driver::lookup_group_by_name. + */ + public function lookup_group_by_name($name) { + return group::lookup_by_field("name", $name); + } + + /** + * @see IdentityProvider_Driver::get_user_list. + */ + public function get_user_list($ids) { + return ORM::factory("user") + ->in("id", $ids) + ->find_all() + ->as_array(); + } + + /** + * @see IdentityProvider_Driver::groups. + */ + public function groups() { + return ORM::factory("group")->find_all(); + } + +} // End Identity Gallery Driver + diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index ee8d413c..fed92c5e 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -91,7 +91,7 @@ open_text="" class="g-panel-link g-button ui-state-default ui-corner-all ui-icon-left"> - id != $user->id && !$user->guest): ?> + id != $user->id && !$user->guest): ?> id") ?>" class="g-dialog-link g-button ui-state-default ui-corner-all ui-icon-left"> -- cgit v1.2.3