}
$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()]);
}
'scm' => array (0, 1, 2),
'docman' => array (0, 1, 2, 3, 4),
+ 'members' => array (0, 1),
);
// Global permissions
'new_tracker' => 15,
'pm_admin' => 1,
'new_pm' => 7,
+ 'members' => 1,
),
'Senior Developer' => array( 'project_read' => 1,
'frs_admin' => 1,
'new_tracker' => 15,
'pm_admin' => 1,
'new_pm' => 7,
+ 'members' => 1,
),
'Junior Developer' => array( 'project_read' => 1,
'frs_admin' => 1,
'new_forum' => 3,
'new_tracker' => 11,
'new_pm' => 3,
+ 'members' => 1,
),
'Doc Writer' => array( 'project_read' => 1,
'frs_admin' => 1,
'new_forum' => 3,
'new_tracker' => 9,
'new_pm' => 1,
+ 'members' => 1,
),
'Support Tech' => array( 'project_read' => 1,
'frs_admin' => 1,
'new_tracker' => 11,
'pm_admin' => 1,
'new_pm' => 7,
+ 'members' => 1,
),
// all other (present) roles
'other' => array( 'project_read' => 1,
'new_tracker' => 11,
'pm_admin' => 1,
'new_pm' => 7,
+ 'members' => 1,
),
);
}
$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);
}
switch ($section) {
case 'forge_admin':
+ case 'members':
return $value;
break;
case 'tracker_admin':
case 'pm_admin':
case 'forum_admin':
+ case 'members':
return ($value >= 1);
break;
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)));
// 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());