This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".
The branch, master has been updated
via 870bb9b3ccabefe655546f8ab480a0d63d41f33e (commit)
via 88600b43e460507510172ba0d8dbc02b26832082 (commit)
via bf3f2a83c04fc0dfa61c6b6a5de76c60a26c5d17 (commit)
via c60a57778b9db9a4139dd6968866032786862836 (commit)
from b06b8b3d9f8a459d54f4f34cd4afdc5373137ebe (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=870bb9b3ccabefe655546f8ab480a0d63d41f33e
commit 870bb9b3ccabefe655546f8ab480a0d63d41f33e
Author: Franck Villaume <[email protected]>
Date: Tue Jun 15 11:33:51 2021 +0200
Adjust widget display and memberlist using role permission
diff --git a/src/common/widget/Widget_ProjectMembers.class.php
b/src/common/widget/Widget_ProjectMembers.class.php
index 516d89b..f73bcb6 100644
--- a/src/common/widget/Widget_ProjectMembers.class.php
+++ b/src/common/widget/Widget_ProjectMembers.class.php
@@ -38,10 +38,6 @@ class Widget_ProjectMembers extends Widget {
global $project;
$result = '';
- if (!forge_check_perm ('members', $project->getID())) {
- return _('No access');
- }
-
$admins = $project->getAdmins();
$members = $project->getUsers();
$seen = array();
@@ -165,6 +161,14 @@ class Widget_ProjectMembers extends Widget {
function getDescription() {
return _('List the project members.');
}
+
+ function isAvailable() {
+ global $project;
+ if (!forge_check_perm('members', $project->getID())) {
+ return false;
+ }
+ return true;
+ }
}
// Local Variables:
diff --git a/src/www/project/memberlist.php b/src/www/project/memberlist.php
index 8bd35df..b75f970 100644
--- a/src/www/project/memberlist.php
+++ b/src/www/project/memberlist.php
@@ -35,7 +35,7 @@ if (!$group_id && $form_grp) {
$group_id = $form_grp;
}
-session_require_perm('project_read', $group_id);
+session_require_perm('members', $group_id);
site_project_header(array('title'=>_('Project Member
List'),'group'=>$group_id,'toptab'=>'memberlist'));
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=88600b43e460507510172ba0d8dbc02b26832082
commit 88600b43e460507510172ba0d8dbc02b26832082
Merge: b06b8b3 bf3f2a8
Author: Franck Villaume <[email protected]>
Date: Tue Jun 15 11:22:25 2021 +0200
Merge remote-tracking branch 'rhabacker/master-ticket-895'
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=bf3f2a83c04fc0dfa61c6b6a5de76c60a26c5d17
commit bf3f2a83c04fc0dfa61c6b6a5de76c60a26c5d17
Author: Ralf Habacker <[email protected]>
Date: Wed May 19 12:59:11 2021 +0200
[#895] Add group permission for showing members
diff --git a/src/common/include/Group.class.php
b/src/common/include/Group.class.php
index 7814f3e..edae8ba 100644
--- a/src/common/include/Group.class.php
+++ b/src/common/include/Group.class.php
@@ -2690,7 +2690,7 @@ class Group extends FFError {
}
$oldsettings = $oldrole->getSettingsForProject
($template);
- $sections = array('project_read',
'project_admin', 'scm', 'docman', 'tracker_admin', 'new_tracker',
'forum_admin', 'new_forum', 'pm_admin', 'new_pm', 'frs_admin', 'new_frs');
+ $sections = array('project_read',
'project_admin', 'scm', 'docman', 'tracker_admin', 'new_tracker',
'forum_admin', 'new_forum', 'pm_admin', 'new_pm', 'frs_admin', 'new_frs',
'members');
foreach ($sections as $section) {
$newrole->setSetting ($section,
$this->getID(), $oldsettings[$section][$template->getID()]);
}
diff --git a/src/common/include/RBAC.php b/src/common/include/RBAC.php
index fd7e978..03002d5 100644
--- a/src/common/include/RBAC.php
+++ b/src/common/include/RBAC.php
@@ -86,6 +86,7 @@ abstract class BaseRole extends FFError {
'scm' => array (0, 1, 2),
'docman' => array (0, 1, 2, 3, 4),
+ 'members' => array (0, 1),
);
// Global permissions
@@ -111,6 +112,7 @@ abstract class BaseRole extends FFError {
'new_tracker' => 15,
'pm_admin' => 1,
'new_pm' => 7,
+ 'members' => 1,
),
'Senior Developer' => array( 'project_read' => 1,
'frs_admin' => 1,
@@ -123,6 +125,7 @@ abstract class BaseRole extends FFError {
'new_tracker' => 15,
'pm_admin' => 1,
'new_pm' => 7,
+ 'members' => 1,
),
'Junior Developer' => array( 'project_read' => 1,
'frs_admin' => 1,
@@ -132,6 +135,7 @@ abstract class BaseRole extends FFError {
'new_forum' => 3,
'new_tracker' => 11,
'new_pm' => 3,
+ 'members' => 1,
),
'Doc Writer' => array( 'project_read' => 1,
'frs_admin' => 1,
@@ -140,6 +144,7 @@ abstract class BaseRole extends FFError {
'new_forum' => 3,
'new_tracker' => 9,
'new_pm' => 1,
+ 'members' => 1,
),
'Support Tech' => array( 'project_read' => 1,
'frs_admin' => 1,
@@ -150,6 +155,7 @@ abstract class BaseRole extends FFError {
'new_tracker' => 11,
'pm_admin' => 1,
'new_pm' => 7,
+ 'members' => 1,
),
// all other (present) roles
'other' => array( 'project_read' => 1,
@@ -161,6 +167,7 @@ abstract class BaseRole extends FFError {
'new_tracker' => 11,
'pm_admin' => 1,
'new_pm' => 7,
+ 'members' => 1,
),
);
}
@@ -358,7 +365,7 @@ abstract class BaseRole extends FFError {
$result = array();
$group_id = $project->getID();
- $sections = array ('project_read', 'project_admin', 'scm',
'docman', 'tracker_admin', 'new_tracker');
+ $sections = array ('project_read', 'project_admin', 'scm',
'docman', 'tracker_admin', 'new_tracker', 'members');
foreach ($sections as $section) {
$result[$section][$group_id] = $this->getVal ($section,
$group_id);
}
@@ -490,6 +497,7 @@ abstract class BaseRole extends FFError {
switch ($section) {
case 'forge_admin':
+ case 'members':
return $value;
break;
@@ -688,6 +696,7 @@ abstract class BaseRole extends FFError {
case 'tracker_admin':
case 'pm_admin':
case 'forum_admin':
+ case 'members':
return ($value >= 1);
break;
@@ -925,7 +934,7 @@ abstract class BaseRole extends FFError {
db_begin();
// Remove obsolete project-wide settings
- $sections = array ('project_read', 'project_admin',
'frs_admin', 'new_frs', 'scm', 'docman', 'tracker_admin', 'new_tracker',
'forum_admin', 'new_forum', 'pm_admin', 'new_pm');
+ $sections = array ('project_read', 'project_admin',
'frs_admin', 'new_frs', 'scm', 'docman', 'tracker_admin', 'new_tracker',
'forum_admin', 'new_forum', 'pm_admin', 'new_pm', 'members');
db_query_params ('DELETE FROM pfo_role_setting where role_id=$1
AND section_name=ANY($2) and ref_id NOT IN (SELECT home_group_id FROM pfo_role
WHERE role_id=$1 AND home_group_id IS NOT NULL UNION SELECT group_id from
role_project_refs WHERE role_id=$1)',
array ($this->getID(),
db_string_array_to_any_clause($sections)));
@@ -971,7 +980,7 @@ abstract class BaseRole extends FFError {
// Add missing settings
// ...project-wide settings
- $arr = array ('project_read', 'project_admin', 'scm', 'docman',
'frs_admin', 'new_frs', 'tracker_admin', 'new_tracker', 'forum_admin',
'new_forum', 'pm_admin', 'new_pm');
+ $arr = array ('project_read', 'project_admin', 'scm', 'docman',
'frs_admin', 'new_frs', 'tracker_admin', 'new_tracker', 'forum_admin',
'new_forum', 'pm_admin', 'new_pm', 'members');
foreach ($projects as $p) {
foreach ($arr as $section) {
$this->normalizePermsForSection ($new_pa,
$section, $p->getID());
diff --git a/src/common/include/RBACEngine.class.php
b/src/common/include/RBACEngine.class.php
index 47c59f1..2468ddb 100644
--- a/src/common/include/RBACEngine.class.php
+++ b/src/common/include/RBACEngine.class.php
@@ -278,6 +278,7 @@ class RBACEngine extends FFError implements PFO_RBACEngine {
case 'tracker_admin':
case 'pm_admin':
case 'forum_admin':
+ case 'members':
$qpa = db_construct_qpa($qpa, 'AND perm_val = 1');
break;
case 'frs_admin':
diff --git a/src/common/include/rbac_texts.php
b/src/common/include/rbac_texts.php
index 0ff80ea..e5308de 100644
--- a/src/common/include/rbac_texts.php
+++ b/src/common/include/rbac_texts.php
@@ -180,6 +180,9 @@ function setup_rbac_strings () {
'new_frs2' =>
_('Files management'),
'new_frs3' =>
_('Files & releases management'),
'new_frs4' =>
_('Package admin'),
+
+ 'members0' =>
_('No access'),
+ 'members1' =>
_('Visible'),
)
);
@@ -210,6 +213,7 @@ function setup_rbac_strings () {
'scm' =>
_('SCM'),
'docman' =>
_('Documentation manager'),
+ 'members'
=> _('Members'),
)
) ;
plugin_hook ("role_translate_strings") ;
diff --git a/src/common/widget/Widget_ProjectMembers.class.php
b/src/common/widget/Widget_ProjectMembers.class.php
index a38fa39..516d89b 100644
--- a/src/common/widget/Widget_ProjectMembers.class.php
+++ b/src/common/widget/Widget_ProjectMembers.class.php
@@ -38,6 +38,10 @@ class Widget_ProjectMembers extends Widget {
global $project;
$result = '';
+ if (!forge_check_perm ('members', $project->getID())) {
+ return _('No access');
+ }
+
$admins = $project->getAdmins();
$members = $project->getUsers();
$seen = array();
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=c60a57778b9db9a4139dd6968866032786862836
commit c60a57778b9db9a4139dd6968866032786862836
Author: Ralf Habacker <[email protected]>
Date: Tue May 18 10:50:14 2021 +0200
Add support for non-null project default permissions
This commit allows default values for project permissions that do not yet
exist in the database (which is the case, for example, during a new
installation or when adding new project permissions) to have non-zero
values.
diff --git a/src/common/include/RBAC.php b/src/common/include/RBAC.php
index 4350d72..fd7e978 100644
--- a/src/common/include/RBAC.php
+++ b/src/common/include/RBAC.php
@@ -151,6 +151,17 @@ abstract class BaseRole extends FFError {
'pm_admin' => 1,
'new_pm' => 7,
),
+ // all other (present) roles
+ 'other' => array( 'project_read' => 1,
+ 'frs_admin' => 1,
+ 'new_frs' => 1,
+ 'docman' => 3,
+ 'new_forum' => 3,
+ 'tracker_admin' => 1,
+ 'new_tracker' => 11,
+ 'pm_admin' => 1,
+ 'new_pm' => 7,
+ ),
);
}
@@ -470,7 +481,11 @@ abstract class BaseRole extends FFError {
function getSetting($section, $reference) {
$value = $this->getSettingRaw($section, $reference);
if ($value == NULL) {
- $value = 0;
+ if (isset($this->defaults['other'][$section])) {
+ $value = $this->defaults['other'][$section];
+ } else {
+ $value = 0;
+ }
}
switch ($section) {
@@ -615,6 +630,7 @@ abstract class BaseRole extends FFError {
if (isset ($this->perms_array[$section][$reference])) {
return $this->perms_array[$section][$reference];
}
+ return NULL;
}
/**
-----------------------------------------------------------------------
Summary of changes:
src/common/include/Group.class.php | 2 +-
src/common/include/RBAC.php | 33 ++++++++++++++++++++---
src/common/include/RBACEngine.class.php | 1 +
src/common/include/rbac_texts.php | 4 +++
src/common/widget/Widget_ProjectMembers.class.php | 8 ++++++
src/www/project/memberlist.php | 2 +-
6 files changed, 44 insertions(+), 6 deletions(-)
hooks/post-receive
--
FusionForge
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits