[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