[evolvis-commits] r16860: When creating a new project-local role, propagate its new_{tracker, pm, forum} permissions to the existing trackers etc.

mirabilos at evolvis.org mirabilos at evolvis.org
Tue Mar 1 01:44:27 CET 2011


Author: mirabilos
Date: 2011-03-01 01:44:27 +0100 (Tue, 01 Mar 2011)
New Revision: 16860

Modified:
   trunk/gforge_base/evolvisforge-5.1/src/common/include/Role.class.php
Log:
When creating a new project-local role, propagate its new_{tracker,pm,forum} permissions to the existing trackers etc.

Modified: trunk/gforge_base/evolvisforge-5.1/src/common/include/Role.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/common/include/Role.class.php	2011-03-01 00:44:23 UTC (rev 16859)
+++ trunk/gforge_base/evolvisforge-5.1/src/common/include/Role.class.php	2011-03-01 00:44:27 UTC (rev 16860)
@@ -316,11 +316,12 @@
 		} else {
 			$arr = array () ;
 		}
-		$keys = array_keys($arr);
+
 		$data = array();
-		for ($i=0; $i<count($keys); $i++) {
+		foreach ($arr as $k => $v) {
+			$data[$k][$this->Group->getID()]= $v;
 
-			if ($keys[$i] == 'forum') {
+			if ($k == 'new_forum') {
 				$res = db_query_params ('SELECT group_forum_id FROM forum_group_list WHERE group_id=$1',
 							array ($this->Group->getID())) ;
 				if (!$res) {
@@ -328,9 +329,9 @@
 					return false;
 				}
 				for ($j=0; $j<db_numrows($res); $j++) {
-					$data[$keys[$i]][db_result($res,$j,'group_forum_id')]= $arr[$keys[$i]];
+					$data['forum'][db_result($res,$j,'group_forum_id')]= $v;
 				}
-			} elseif ($keys[$i] == 'pm') {
+			} elseif ($k == 'new_pm') {
 				$res = db_query_params ('SELECT group_project_id FROM project_group_list WHERE group_id=$1',
 							array ($this->Group->getID())) ;
 				if (!$res) {
@@ -338,9 +339,9 @@
 					return false;
 				}
 				for ($j=0; $j<db_numrows($res); $j++) {
-					$data[$keys[$i]][db_result($res,$j,'group_project_id')]= $arr[$keys[$i]];
+					$data['pm'][db_result($res,$j,'group_project_id')]= $v;
 				}
-			} elseif ($keys[$i] == 'tracker') {
+			} elseif ($k == 'new_tracker') {
 				$res = db_query_params ('SELECT group_artifact_id FROM artifact_group_list WHERE group_id=$1',
 							array ($this->Group->getID())) ;
 				if (!$res) {
@@ -348,10 +349,8 @@
 					return false;
 				}
 				for ($j=0; $j<db_numrows($res); $j++) {
-					$data[$keys[$i]][db_result($res,$j,'group_artifact_id')]= $arr[$keys[$i]];
+					$data['tracker'][db_result($res,$j,'group_artifact_id')]= $v;
 				}
-			} else {
-				$data[$keys[$i]][0]= $arr[$keys[$i]];
 			}
 		}
 



More information about the evolvis-commits mailing list