From b0270cf722e2ab95ea4e2f94c6b904e45b3c30c3 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 22 Jan 2010 12:09:46 -0800 Subject: [PATCH] Refactor the identity provider installation in to a common helper method (change_provider) with an initialization callback. --- modules/ldap/helpers/ldap_installer.php | 41 ++++++++++++------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/modules/ldap/helpers/ldap_installer.php b/modules/ldap/helpers/ldap_installer.php index f8180eba..1179fa4a 100644 --- a/modules/ldap/helpers/ldap_installer.php +++ b/modules/ldap/helpers/ldap_installer.php @@ -19,31 +19,18 @@ */ class ldap_installer { static function check_environment() { - return array(); + $messages = array(); + if (array_search("ldap", get_loaded_extensions()) === false) { + $messages["error"][] = + t("Cannot install LDAP identity provider as the PHP LDAP extension module is not enabled."); + } else { + $messages["warn"][] = IdentityProvider::confirmation_message(); + } + return $messages; } static function install() { - $current_provider = module::get_var("gallery", "identity_provider"); - if (!empty($current_provider)) { - module::uninstall($current_provider); - } - - IdentityProvider::reset(); - module::set_var("gallery", "identity_provider", "ldap"); - - module::set_version("ldap", 1); - $root = item::root(); - $ldap_provider = IdentityProvider::instance(); - foreach ($ldap_provider->groups() as $group) { - module::event("group_created", $group); - access::allow($group, "view", $root); - access::allow($group, "view_full", $root); - } - - module::event("identity_provider_changed", $current_provider, "ldap"); - - auth::login($ldap_provider->admin_user()); - Session::instance()->regenerate(); + IdentityProvider::change_provider("ldap"); } static function uninstall() { @@ -53,4 +40,14 @@ class ldap_installer { module::event("group_deleted", $group); } } + + static function initialize() { + module::set_version("ldap", 1); + $root = item::root(); + foreach (IdentityProvider::instance()->groups() as $group) { + module::event("group_created", $group); + access::allow($group, "view", $root); + access::allow($group, "view_full", $root); + } + } } \ No newline at end of file