Index: trunk/CHANGELOG
===================================================================
--- trunk/CHANGELOG	(revision 728)
+++ trunk/CHANGELOG	(revision 729)
@@ -11,6 +11,8 @@
 ! = Update/Change
 
 ------------------------------------- 2.7.0 -------------------------------------
+28-Feb-2008	Christian Sommer
+#	added bugfix from the forum member tavitar to fix an issue with multiple groups (module permission do not add up properly)
 25-Feb-2008	Matthias Gallas
 +	added missing Dutch language files for core modules
 24-Feb-2008 Thomas Hornik
Index: trunk/wb/framework/class.login.php
===================================================================
--- trunk/wb/framework/class.login.php	(revision 728)
+++ trunk/wb/framework/class.login.php	(revision 729)
@@ -228,7 +228,7 @@
 			$_SESSION['TEMPLATE_PERMISSIONS'] = array();
 			$_SESSION['GROUP_NAME'] = array();
 
-
+			$first_group = true;
 			foreach (split(",", $this->get_session('GROUPS_ID')) as $cur_group_id) {
 				$query = "SELECT * FROM ".$this->GROUPS_TABLE." WHERE group_id = '".$cur_group_id."'";
 				$results = $database->query($query);
@@ -240,12 +240,21 @@
 				}
 				// Set module permissions
 				if($results_array['module_permissions'] != '') {
-					$_SESSION['MODULE_PERMISSIONS'] = array_merge($_SESSION['MODULE_PERMISSIONS'], explode(',', $results_array['module_permissions']));
+					if ($first_group) {
+          	$_SESSION['MODULE_PERMISSIONS'] = explode(',', $results_array['module_permissions']);
+          } else {
+          	$_SESSION['MODULE_PERMISSIONS'] = array_intersect($_SESSION['MODULE_PERMISSIONS'], explode(',', $results_array['module_permissions']));
+					}
 				}
 				// Set template permissions
 				if($results_array['template_permissions'] != '') {
-					$_SESSION['TEMPLATE_PERMISSIONS'] = array_merge($_SESSION['TEMPLATE_PERMISSIONS'], explode(',', $results_array['template_permissions']));
+					if ($first_group) {
+          	$_SESSION['TEMPLATE_PERMISSIONS'] = explode(',', $results_array['template_permissions']);
+          } else {
+          	$_SESSION['TEMPLATE_PERMISSIONS'] = array_intersect($_SESSION['TEMPLATE_PERMISSIONS'], explode(',', $results_array['template_permissions']));
+					}
 				}
+				$first_group = false;
 			}	
 
 			// Update the users table with current ip and timestamp
