[evolvis-commits] r15142: RBAC for forum/tracker/pm factories (it even makes the code simpler )
mirabilos at evolvis.org
mirabilos at evolvis.org
Mon Feb 28 23:46:29 CET 2011
Author: mirabilos
Date: 2011-02-28 23:46:29 +0100 (Mon, 28 Feb 2011)
New Revision: 15142
Modified:
trunk/gforge_base/evolvisforge-5.1/gforge/common/forum/ForumFactory.class.php
trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectGroupFactory.class.php
trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactTypeFactory.class.php
Log:
RBAC for forum/tracker/pm factories (it even makes the code simpler)
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/forum/ForumFactory.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/forum/ForumFactory.class.php 2011-02-28 22:46:26 UTC (rev 15141)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/forum/ForumFactory.class.php 2011-02-28 22:46:29 UTC (rev 15142)
@@ -82,46 +82,11 @@
return $this->forums;
}
-
- if (session_loggedin()) {
- $perm =& $this->Group->getPermission ();
- if (!$perm || !is_object($perm) || !$perm->isMember()) {
- $result = db_query_params ('SELECT * FROM forum_group_list_vw
+ $result = db_query_params ('SELECT * FROM forum_group_list_vw
WHERE group_id=$1
-AND is_public=1
ORDER BY group_forum_id',
- array ($this->Group->getID())) ;
- } else {
- if (forge_check_perm ('forum_admin', $this->Group->getID())) {
- $result = db_query_params ('SELECT * FROM forum_group_list_vw
-WHERE group_id=$1
-AND is_public < 3
-ORDER BY group_forum_id',
- array ($this->Group->getID())) ;
- } else {
- $result = db_query_params ('SELECT * FROM forum_group_list_vw
-WHERE group_id=$1
-AND is_public < 3
-AND group_forum_id IN (SELECT role_setting.ref_id
- FROM role_setting, user_group
- WHERE role_setting.section_name = $2
- AND role_setting.value::integer >= 0
- AND role_setting.ref_id=forum_group_list_vw.group_forum_id
- AND user_group.role_id = role_setting.role_id
- AND user_group.user_id=$3)
-ORDER BY group_forum_id',
- array ($this->Group->getID(),
- 'forum',
- user_getid())) ;
- }
- }
- } else {
- $result = db_query_params ('SELECT * FROM forum_group_list_vw
-WHERE group_id=$1
-AND is_public=1
-ORDER BY group_forum_id',
- array ($this->Group->getID())) ;
- }
+ array ($this->Group->getID())) ;
+ }
$rows = db_numrows($result);
@@ -130,7 +95,9 @@
$this->forums = false;
} else {
while ($arr = db_fetch_array($result)) {
- $this->forums[] = new Forum($this->Group, $arr['group_forum_id'], $arr);
+ if (forge_check_perm ('forum', $arr['group_forum_id'], 'read')) {
+ $this->forums[] = new Forum($this->Group, $arr['group_forum_id'], $arr);
+ }
}
}
return $this->forums;
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectGroupFactory.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectGroupFactory.class.php 2011-02-28 22:46:26 UTC (rev 15141)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectGroupFactory.class.php 2011-02-28 22:46:29 UTC (rev 15142)
@@ -82,34 +82,8 @@
if ($this->projectGroups) {
return $this->projectGroups;
}
- if (session_loggedin()) {
- $perm =& $this->Group->getPermission ();
- if (!$perm || !is_object($perm) || !$perm->isMember()) {
- $result = db_query_params ('SELECT * FROM project_group_list_vw WHERE group_id=$1 AND is_public=1 ORDER BY group_project_id',
+ $result = db_query_params ('SELECT * FROM project_group_list_vw WHERE group_id=$1 ORDER BY group_project_id',
array ($this->Group->getID())) ;
- } else {
- if ($perm->isPMAdmin()) {
- $result = db_query_params ('SELECT * FROM project_group_list_vw WHERE group_id=$1 AND is_public<3 ORDER BY group_project_id',
- array ($this->Group->getID())) ;
- } else {
- $result = db_query_params ('SELECT * FROM project_group_list_vw
- WHERE group_id=$1 AND is_public<3
- AND group_project_id IN (SELECT role_setting.ref_id
- FROM role_setting, user_group
- WHERE role_setting.section_name = $2
- AND role_setting.value::integer >= 0
- AND role_setting.ref_id=project_group_list_vw.group_project_id
- AND user_group.role_id = role_setting.role_id
- AND user_group.user_id=$3)
- ORDER BY group_project_id',
- array ($this->Group->getID(),
- 'pm',
- user_getid())) ;
- }
- }
- } else {
- $result = db_query_params ('SELECT * FROM project_group_list_vw WHERE group_id=$1 AND is_public=1 ORDER BY group_project_id',
- array ($this->Group->getID())) ;
}
$rows = db_numrows($result);
@@ -118,7 +92,9 @@
$this->projectGroups=NULL;
} else {
while ($arr = db_fetch_array($result)) {
- $this->projectGroups[] = new ProjectGroup($this->Group, $arr['group_project_id'], $arr);
+ if (forge_check_perm ('pm', $arr['group_project_id'], 'read')) {
+ $this->projectGroups[] = new ProjectGroup($this->Group, $arr['group_project_id'], $arr);
+ }
}
}
return $this->projectGroups;
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactTypeFactory.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactTypeFactory.class.php 2011-02-28 22:46:26 UTC (rev 15141)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactTypeFactory.class.php 2011-02-28 22:46:29 UTC (rev 15142)
@@ -88,46 +88,10 @@
if ($this->ArtifactTypes) {
return $this->ArtifactTypes;
}
- if (session_loggedin()) {
- $perm =& $this->Group->getPermission ();
- if (!$perm || !is_object($perm) || !$perm->isMember()) {
- $result = db_query_params ('SELECT * FROM artifact_group_list_vw
+ $result = db_query_params ('SELECT * FROM artifact_group_list_vw
WHERE group_id=$1
- AND is_public=1
ORDER BY group_artifact_id ASC',
- array ($this->Group->getID())) ;
- } else {
- if ($perm->isArtifactAdmin()) {
- $result = db_query_params ('SELECT * FROM artifact_group_list_vw
- WHERE group_id=$1
- AND is_public<3
- ORDER BY group_artifact_id ASC',
- array ($this->Group->getID())) ;
- } else {
- $result = db_query_params ('SELECT * FROM artifact_group_list_vw
- WHERE group_id=$1
- AND is_public<3
- AND group_artifact_id IN (SELECT role_setting.ref_id
- FROM role_setting, user_group
- WHERE role_setting.value::integer >= 0
- AND role_setting.section_name = $2
- AND role_setting.ref_id=artifact_group_list_vw.group_artifact_id
-
- AND user_group.role_id = role_setting.role_id
- AND user_group.user_id = $3 )
- ORDER BY group_artifact_id ASC',
- array ($this->Group->getID(),
- 'tracker',
- user_getid ())) ;
- }
- }
- } else {
- $result = db_query_params ('SELECT * FROM artifact_group_list_vw
- WHERE group_id=$1
- AND is_public=1
- ORDER BY group_artifact_id ASC',
- array ($this->Group->getID())) ;
- }
+ array ($this->Group->getID())) ;
$rows = db_numrows($result);
@@ -136,11 +100,13 @@
$this->ArtifactTypes=NULL;
} else {
while ($arr =& db_fetch_array($result)) {
- $artifactType = new ArtifactType($this->Group, $arr['group_artifact_id'], $arr);
- if($artifactType->isError()) {
- $this->setError($artifactType->getErrorMessage());
- } else {
- $this->ArtifactTypes[] = $artifactType;
+ if (forge_check_perm ('tracker', $arr['group_artifact_id'], 'read')) {
+ $artifactType = new ArtifactType($this->Group, $arr['group_artifact_id'], $arr);
+ if($artifactType->isError()) {
+ $this->setError($artifactType->getErrorMessage());
+ } else {
+ $this->ArtifactTypes[] = $artifactType;
+ }
}
}
}
More information about the evolvis-commits
mailing list