diff --git a/lam/lib/config.inc b/lam/lib/config.inc index 7a3b0015..5232afaf 100644 --- a/lam/lib/config.inc +++ b/lam/lib/config.inc @@ -723,89 +723,59 @@ class Config { } /** - * Returns an array of all selected user modules + * Returns an array of all selected account modules * + * @param string $scope account type * @return array user modules */ - function get_UserModules() { - return explode(",", $this->usermodules); + function get_AccountModules($scope) { + switch ($scope) { + case 'user': + return explode(",", $this->usermodules); + break; + case 'group': + return explode(",", $this->groupmodules); + break; + case 'host': + return explode(",", $this->hostmodules); + break; + default: + return array(); + break; + } + } /** - * Sets the selected user modules + * Sets the selected account modules * * @param array $modules array with module names (not aliases!) + * @param string $scope account type * @return boolean true if $modules has correct format */ - function set_UserModules($modules) { + function set_AccountModules($modules, $scope) { if (! is_array($modules)) return false; // check module names - $available = getAvailableModules('user'); + $available = getAvailableModules($scope); for ($i = 0; $i < sizeof($modules); $i++) { if (! in_array($modules[$i], $available)) return false; } // check depends/conflicts - if (check_module_conflicts($modules, getModulesDependencies('user')) != false) return false; - if (check_module_depends($modules, getModulesDependencies('user')) != false) return false; - $this->usermodules = implode(",", $modules); - return true; - } - - /** - * Returns an array of all selected group modules - * - * @return array group modules - */ - function get_GroupModules() { - return explode(",", $this->groupmodules); - } - - /** - * Sets the selected group modules - * - * @param array $modules array with module names (not aliases!) - * @return boolean true if $modules has correct format - */ - function set_GroupModules($modules) { - if (! is_array($modules)) return false; - // check module names - $available = getAvailableModules('group'); - for ($i = 0; $i < sizeof($modules); $i++) { - if (! in_array($modules[$i], $available)) return false; + if (check_module_conflicts($modules, getModulesDependencies($scope)) != false) return false; + if (check_module_depends($modules, getModulesDependencies($scope)) != false) return false; + switch ($scope) { + case 'user': + $this->usermodules = implode(",", $modules); + break; + case 'group': + $this->groupmodules = implode(",", $modules); + break; + case 'host': + $this->hostmodules = implode(",", $modules); + break; + default: + break; } - // check depends/conflicts - if (check_module_conflicts($modules, getModulesDependencies('group')) != false) return false; - if (check_module_depends($modules, getModulesDependencies('group')) != false) return false; - $this->groupmodules = implode(",", $modules); - return true; - } - - /** - * Returns an array of all selected host modules - * - * @return array host modules - */ - function get_HostModules() { - return explode(",", $this->hostmodules); - } - - /** - * Sets the selected host modules - * - * @param array $modules array with module names (not aliases!) - * @return boolean true if $modules has correct format - */ - function set_HostModules($modules) { - if (! is_array($modules)) return false; - // check module names - $available = getAvailableModules('host'); - for ($i = 0; $i < sizeof($modules); $i++) { - if (! in_array($modules[$i], $available)) return false; - } - // check depends/conflicts - if (check_module_conflicts($modules, getModulesDependencies('host')) != false) return false; - if (check_module_depends($modules, getModulesDependencies('host')) != false) return false; - $this->hostmodules = implode(",", $modules); return true; } diff --git a/lam/lib/modules.inc b/lam/lib/modules.inc index d9f75374..999d951c 100644 --- a/lam/lib/modules.inc +++ b/lam/lib/modules.inc @@ -419,6 +419,7 @@ function buildUploadAccounts($scope, $data, $ids) { $unOrdered = getAvailableModules($scope); $ordered = array(); $predepends = array(); + // get dependencies for ($i = 0; $i < sizeof($unOrdered); $i++) { $mod = new $unOrdered[$i]($scope); $predepends[$unOrdered[$i]] = $mod->get_uploadPreDepends(); @@ -1134,7 +1135,7 @@ class accountContainer { * $dn is the dn of the account which should be loaded */ function load_account($dn) { - $modules = call_user_func(array($_SESSION['config'], 'get_'.ucfirst($this->type).'Modules')); + $modules = $_SESSION['config']->get_AccountModules($this->type); $search = substr($dn, 0, strpos($dn, ',')); $result = ldap_search($_SESSION['ldap']->server(), $dn, $search); $entry = ldap_first_entry($_SESSION['ldap']->server(), $result); @@ -1223,8 +1224,7 @@ class accountContainer { * for a new account */ function new_account() { - $temp = ucfirst($this->type); - $modules = call_user_func(array(&$_SESSION['config'], 'get_' . $temp . 'Modules')); + $modules = $_SESSION['config']->get_AccountModules($this->type); foreach ($modules as $module) { $this->module[$module] = new $module($this->type); $this->module[$module]->init($this->base); diff --git a/lam/templates/config/confmain.php b/lam/templates/config/confmain.php index dce08290..9b8e8f59 100644 --- a/lam/templates/config/confmain.php +++ b/lam/templates/config/confmain.php @@ -131,9 +131,9 @@ if (isset($_GET["modulesback"])) { $conf->set_scriptserver($_SESSION['conf_scriptserver']); // check if modules were edited if ($_GET["moduleschanged"] == "true") { - $conf->set_UserModules($_SESSION['conf_usermodules']); - $conf->set_GroupModules($_SESSION['conf_groupmodules']); - $conf->set_HostModules($_SESSION['conf_hostmodules']); + $conf->set_AccountModules($_SESSION['conf_usermodules'], 'user'); + $conf->set_AccountModules($_SESSION['conf_groupmodules'], 'group'); + $conf->set_AccountModules($_SESSION['conf_hostmodules'], 'host'); } } @@ -216,9 +216,9 @@ echo ("
" . _("Account modules") . ""); echo (""); // Account modules -echo "\n"; -echo "\n"; -echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; echo "\n"; echo "\n"; @@ -234,11 +234,11 @@ echo ("

"); // get list of scopes of modules $scopes = array(); -$mods = $conf->get_UserModules(); +$mods = $conf->get_AccountModules('user'); for ($i = 0; $i < sizeof($mods); $i++) $scopes[$mods[$i]][] = 'user'; -$mods = $conf->get_GroupModules(); +$mods = $conf->get_AccountModules('group'); for ($i = 0; $i < sizeof($mods); $i++) $scopes[$mods[$i]][] = 'group'; -$mods = $conf->get_HostModules(); +$mods = $conf->get_AccountModules('host'); for ($i = 0; $i < sizeof($mods); $i++) $scopes[$mods[$i]][] = 'host'; // get module options @@ -439,9 +439,9 @@ echo ("

\ echo ("

\n"); // modules -echo ("

get_UserModules()) . "\">

\n"); -echo ("

get_GroupModules()) . "\">

\n"); -echo ("

get_HostModules()) . "\">

\n"); +echo ("

get_AccountModules('user')) . "\">

\n"); +echo ("

get_AccountModules('group')) . "\">

\n"); +echo ("

get_AccountModules('host')) . "\">

\n"); echo ("\n"); echo ("\n"); diff --git a/lam/templates/config/confsave.php b/lam/templates/config/confsave.php index 0daf74c2..f7cca6ff 100644 --- a/lam/templates/config/confsave.php +++ b/lam/templates/config/confsave.php @@ -161,19 +161,19 @@ if (!$conf->set_scriptserver($scriptserver)) { exit; } -if (! $conf->set_UserModules($_SESSION['conf_usermodules'])) { +if (! $conf->set_AccountModules($_SESSION['conf_usermodules'], 'user')) { echo ("" . _("Saving user modules failed!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (! $conf->set_GroupModules($_SESSION['conf_groupmodules'])) { +if (! $conf->set_AccountModules($_SESSION['conf_groupmodules'], 'group')) { echo ("" . _("Saving group modules failed!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit; } -if (! $conf->set_HostModules($_SESSION['conf_hostmodules'])) { +if (! $conf->set_AccountModules($_SESSION['conf_hostmodules'], 'host')) { echo ("" . _("Saving host modules failed!") . ""); echo ("\n


" . _("Back to preferences...") . ""); exit;
" . _("User modules") . ": " . implode(", ", $conf->get_UserModules()) . "
" . _("Group modules") . ": " . implode(", ", $conf->get_GroupModules()) . "
" . _("Host modules") . ": " . implode(", ", $conf->get_HostModules()) . "
" . _("User modules") . ": " . implode(", ", $conf->get_AccountModules('user')) . "
" . _("Group modules") . ": " . implode(", ", $conf->get_AccountModules('group')) . "
" . _("Host modules") . ": " . implode(", ", $conf->get_AccountModules('host')) . "
 
  " . "" . _("Help") . "