Index: trunk/wp-content/plugins/xpressme/xpressme_class.php
===================================================================
--- trunk/wp-content/plugins/xpressme/xpressme_class.php	(revision 150)
+++ trunk/wp-content/plugins/xpressme/xpressme_class.php	(revision 152)
@@ -139,4 +139,8 @@
 		$table = get_wp_prefix() . 'group_role';
 		$xoops_group = get_xoops_prefix() . 'groups';
+		$xoops_group_permission = get_xoops_prefix() . 'group_permission';
+		
+		$module_id = get_xpress_modid();
+		
 		$sql=  "SELECT * FROM $table";
 		$before_groupes = $xoops_db->get_results($sql);
@@ -145,27 +149,40 @@
 		$xoops_db->query($sql);
 		
-		
-		$sql=  "SELECT * FROM $xoops_group WHERE group_type <> 'Anonymous'";
+		$sql =  "SELECT *  FROM $xoops_group_permission WHERE gperm_itemid = $module_id";
+		$gperms = $xoops_db->get_results($sql);
+		
+		$sql =  "SELECT * FROM $xoops_group WHERE group_type <> 'Anonymous'";
 		$groupes = $xoops_db->get_results($sql);
 		$insert_sql = '';
 		foreach ($groupes as $groupe) {
-			$role = '';
-			foreach ($before_groupes as $before_groupe) {
-				if ($groupe->groupid == $before_groupe->groupid) {
-					$role = $before_groupe->role;
-					$login_all = $before_groupe->login_all;
+			$parmsql =  "SELECT *  FROM $xoops_group_permission WHERE gperm_itemid = $module_id AND gperm_groupid = $groupe->groupid";
+			$gperms = $xoops_db->get_results($parmsql);
+			$parmission = '';
+			foreach ($gperms as $gperm) {
+				$parmission = $gperm->gperm_name;
+				if ($parmission == 'module_admin') break;
+			}
+			
+			if (!empty($parmission)){
+				$role = ''; 
+				foreach ($before_groupes as $before_groupe) {
+					if ($groupe->groupid == $before_groupe->groupid) {
+						$role = $before_groupe->role;
+						$login_all = $before_groupe->login_all;
+					}
 				}
-			}
-			
-			$insert_sql  = "INSERT INTO  $table ";
-			$insert_sql .= "(groupid , name , description , group_type , role , login_all) ";
-			$insert_sql .= "VALUES (";
-			$insert_sql .= $groupe->groupid . ', ';
-			$insert_sql .= "'" . $groupe->name . "' , ";
-			$insert_sql .= "'" . $groupe->description . "' , ";
-			$insert_sql .= "'" . $groupe->group_type . "' , ";
-			$insert_sql .= "'" . $role . "' , '";
-			$insert_sql .= $login_all . "')";
-			$xoops_db->query($insert_sql);
+				if ($parmission == 'module_admin') $role = 'administrator';
+				
+				$insert_sql  = "INSERT INTO  $table ";
+				$insert_sql .= "(groupid , name , description , group_type , role , login_all) ";
+				$insert_sql .= "VALUES (";
+				$insert_sql .= $groupe->groupid . ', ';
+				$insert_sql .= "'" . $groupe->name . "' , ";
+				$insert_sql .= "'" . $groupe->description . "' , ";
+				$insert_sql .= "'" . $parmission . "' , ";
+				$insert_sql .= "'" . $role . "' , '";
+				$insert_sql .= $login_all . "')";
+				$xoops_db->query($insert_sql);
+			}
 		}
 		
@@ -406,9 +423,9 @@
 					$selected = '';
 				}
-				if ($groupe->group_type != 'Admin' || $groupe->groupid > 3 || !empty($selected)) {
+				if ($groupe->group_type != 'module_admin'|| !empty($selected)) {
 					$role_list .= "<option value=\"{$role}\"{$selected}>{$name}</option>\n";
 				}
 			}
-			if ($groupe->group_type != 'Admin' || $groupe->groupid > 3) {
+			if ($groupe->group_type != 'module_admin') {
 				if ( $group_has_role ) {
 					$role_list .= '<option value="default">' . __('Default Role of WordPress', 'xpressme') . "</option>\n";
