diff --git a/lam/lib/config.inc b/lam/lib/config.inc index 90b5ebb1..6631707a 100644 --- a/lam/lib/config.inc +++ b/lam/lib/config.inc @@ -710,7 +710,14 @@ class Config { // returns an array of all selected user modules function get_UserModules() { - return explode(",", $this->usermodules); + $modules = explode(",", $this->usermodules); + $available = getAvailableModules('user'); + // only return available modules + $ret = array(); + for ($i = 0; $i < sizeof($modules); $i++) { + if (in_array($modules[$i], $available)) $ret[] = $modules[$i]; + } + return $ret; } // sets the selected user modules @@ -730,7 +737,14 @@ class Config { // returns an array of all selected group modules function get_GroupModules() { - return explode(",", $this->groupmodules); + $modules = explode(",", $this->groupmodules); + $available = getAvailableModules('group'); + // only return available modules + $ret = array(); + for ($i = 0; $i < sizeof($modules); $i++) { + if (in_array($modules[$i], $available)) $ret[] = $modules[$i]; + } + return $ret; } // sets the selected group modules @@ -750,7 +764,14 @@ class Config { // returns an array of all selected host modules function get_HostModules() { - return explode(",", $this->hostmodules); + $modules = explode(",", $this->hostmodules); + $available = getAvailableModules('host'); + // only return available modules + $ret = array(); + for ($i = 0; $i < sizeof($modules); $i++) { + if (in_array($modules[$i], $available)) $ret[] = $modules[$i]; + } + return $ret; } // sets the selected host modules diff --git a/lam/templates/config/confmodules.php b/lam/templates/config/confmodules.php index 5ffade6f..b15a4ed1 100644 --- a/lam/templates/config/confmodules.php +++ b/lam/templates/config/confmodules.php @@ -68,10 +68,14 @@ $group_deps = getModulesDependencies('group'); $host_deps = getModulesDependencies('host'); // user modules -$selected_users = array(); -$selected_users = $_SESSION['conf_usermodules']; +$selected_users_temp = $_SESSION['conf_usermodules']; $available_users = array(); $available_users = getAvailableModules('user'); +$selected_users = array(); +// only use available modules +for ($i = 0; $i < sizeof($selected_users_temp); $i++) { + if (in_array($selected_users_temp[$i], $available_users)) $selected_users[] = $selected_users_temp[$i]; +} $no_conflicts_user = true; $no_depends_user = true; @@ -95,10 +99,14 @@ elseif ($_POST['user_available'] && ($_POST['user_add'])) { } // group modules -$selected_groups = array(); -$selected_groups = $_SESSION['conf_groupmodules']; +$selected_groups_temp = $_SESSION['conf_groupmodules']; $available_groups = array(); $available_groups = getAvailableModules('group'); +$selected_groups = array(); +// only use available modules +for ($i = 0; $i < sizeof($selected_groups_temp); $i++) { + if (in_array($selected_groups_temp[$i], $available_groups)) $selected_groups[] = $selected_groups_temp[$i]; +} $no_conflicts_group = true; $no_depends_group = true; @@ -122,10 +130,14 @@ elseif ($_POST['group_available'] && ($_POST['group_add'])) { } // host modules -$selected_hosts = array(); -$selected_hosts = $_SESSION['conf_hostmodules']; +$selected_hosts_temp = $_SESSION['conf_hostmodules']; $available_hosts = array(); $available_hosts = getAvailableModules('host'); +$selected_hosts = array(); +// only use available modules +for ($i = 0; $i < sizeof($selected_hosts_temp); $i++) { + if (in_array($selected_hosts_temp[$i], $available_hosts)) $selected_hosts[] = $selected_hosts_temp[$i]; +} $no_conflicts_host = true; $no_depends_host = true; @@ -339,10 +351,10 @@ echo "

\n"; echo "\n"; } else { - echo "\n"; + echo "\n"; } echo " "; - echo "\n"; + echo "\n"; echo "

\n"; echo "\n";