[evolvis-commits] r15888: RBAC: fixes + UI to set a group-specific role as public/shared

mirabilos at evolvis.org mirabilos at evolvis.org
Tue Mar 1 00:35:00 CET 2011


Author: mirabilos
Date: 2011-03-01 00:35:00 +0100 (Tue, 01 Mar 2011)
New Revision: 15888

Modified:
   trunk/gforge_base/evolvisforge-5.1/src/common/include/RBAC.php
   trunk/gforge_base/evolvisforge-5.1/src/common/include/Role.class.php
   trunk/gforge_base/evolvisforge-5.1/src/www/project/admin/roleedit.php
Log:
RBAC: fixes + UI to set a group-specific role as public/shared

Modified: trunk/gforge_base/evolvisforge-5.1/src/common/include/RBAC.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/common/include/RBAC.php	2011-02-28 23:34:58 UTC (rev 15887)
+++ trunk/gforge_base/evolvisforge-5.1/src/common/include/RBAC.php	2011-02-28 23:35:00 UTC (rev 15888)
@@ -333,7 +333,11 @@
 				return false;
 			}
 			$this->data_array = db_fetch_array($res);
-			
+			if ($this->data_array['is_public'] == 't') {
+				$this->data_array['is_public'] = true ;
+			} else {
+				$this->data_array['is_public'] = false ;
+			}
 			$res = db_query_params ('SELECT section_name, ref_id, perm_val FROM pfo_role_setting WHERE role_id=$1',
 						array ($role_id)) ;
 			if (!$res) {

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-02-28 23:34:58 UTC (rev 15887)
+++ trunk/gforge_base/evolvisforge-5.1/src/common/include/Role.class.php	2011-02-28 23:35:00 UTC (rev 15888)
@@ -149,8 +149,8 @@
 	 *      @return boolean True if updated OK
 	 */
 	function setPublic ($flag) { // From the PFO spec
-		$res = db_query_params ('UPDATE pfo_role SET is_public=$1 WHERE role_id=$1',
-					array ($flag,
+		$res = db_query_params ('UPDATE pfo_role SET is_public=$1 WHERE role_id=$2',
+					array ($flag?'true':'false',
 					       $this->getID())) ;
 		if (!$res || db_affected_rows($res) < 1) {
 			$this->setError('update::is_public::'.db_error());

Modified: trunk/gforge_base/evolvisforge-5.1/src/www/project/admin/roleedit.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/www/project/admin/roleedit.php	2011-02-28 23:34:58 UTC (rev 15887)
+++ trunk/gforge_base/evolvisforge-5.1/src/www/project/admin/roleedit.php	2011-02-28 23:35:00 UTC (rev 15888)
@@ -102,8 +102,10 @@
 		if (($role->getHomeProject() != NULL)
 		    && ($role->getHomeProject()->getID() == $group_id)) {
 			$role_name = trim(getStringFromRequest('role_name'));
+			$public = getIntFromRequest('public') ? true : false ;
 		} else {
 			$role_name = $role->getName() ;
+			$public = $role->isPublic() ;
 		}
 		if (!$role_name) {
 			$error_msg .= ' Missing Role Name ';
@@ -116,6 +118,7 @@
 					$feedback = _('Successfully Created New Role');
 				}
 			} else {
+				$role->setPublic($public) ;
 				if (!$role->update($role_name,$data)) {
 					$error_msg .= $role->getErrorMessage();
 				} else {
@@ -157,18 +160,22 @@
 
 if (USE_PFO_RBAC) {
 	if ($role->getHomeProject() == NULL) {
-		echo '<p><strong>'._('Role Name').'</strong><br />' ;
+		echo '<p><strong>'._('Role Name').'</strong></p>' ;
 		printf (_('%s (global role)'),
 			$role->getName ()) ;
 	} elseif ($role->getHomeProject()->getID() != $group_id) {
-		echo '<p><strong>'._('Role Name').'</strong><br />' ;
+		echo '<p><strong>'._('Role Name').'</strong></p>' ;
 		printf (_('%s (in project %s)'),
 			$role->getName (),
 			$role->getHomeProject()->getPublicName()) ;
 	} else {
-		echo '<p><strong>'._('Role Name').'</strong><br /><input type="text" name="role_name" value="'.$role->getName().'">' ;
+		echo '<p><strong>'._('Role Name').'</strong><br /><input type="text" name="role_name" value="'.$role->getName().'"><br />' ;
+		echo '<input type="checkbox" name="public" value="1"' ;
+		if ($role->isPublic()) {
+			echo ' checked' ;
+		}
+		echo '> '._('Shared role').'</p>' ;
 	}
-	echo '</p>';
 } else {
 	if ($role_id != 'observer') {
 		echo '<p><strong>'._('Role Name').'</strong><br />



More information about the evolvis-commits mailing list