'pm_admin' => array(0, 1),
'forum_admin' => array(0, 1),
- 'tracker' => array(0, 1, 3, 5, 7),
+ 'tracker' => array(0, 1, 9, 11, 13, 15),
'pm' => array(0, 1, 3, 5, 7),
'forum' => array(0, 1, 2, 3, 4),
- 'new_tracker' => array(0, 1, 3, 5, 7),
+ 'new_tracker' => array(0, 1, 9, 11, 13, 15),
'new_pm' => array(0, 1, 3, 5, 7),
'new_forum' => array(0, 1, 2, 3, 4),
'forum_admin' => 1,
'new_forum' => 3,
'tracker_admin' => 1,
- 'new_tracker' => 7,
+ 'new_tracker' => 15,
'pm_admin' => 1,
'new_pm' => 7,
'webcal' => 2,
'forum_admin' => 1,
'new_forum' => 3,
'tracker_admin' => 1,
- 'new_tracker' => 7,
+ 'new_tracker' => 15,
'pm_admin' => 1,
'new_pm' => 7,
'webcal' => 2,
'scm' => 2,
'docman' => 2,
'new_forum' => 3,
- 'new_tracker' => 3,
+ 'new_tracker' => 11,
'new_pm' => 3,
'webcal' => 2,
),
'frs' => 2,
'docman' => 4,
'new_forum' => 3,
- 'new_tracker' => 1,
+ 'new_tracker' => 9,
'new_pm' => 1,
'webcal' => 2,
),
'docman' => 1,
'new_forum' => 3,
'tracker_admin' => 1,
- 'new_tracker' => 3,
+ 'new_tracker' => 11,
'pm_admin' => 1,
'new_pm' => 7,
'webcal' => 2,
}
function linkProject ($project) { // From the PFO spec
+ global $SYS;
$hp = $this->getHomeProject();
if ($hp != NULL && $hp->getID() == $project->getID()) {
$this->setError(_("Can't link to home project"));
$this->normalizeData();
+ foreach ($this->getUsers() as $u) {
+ if (!$SYS->sysCheckCreateUser($u->getID())) {
+ $this->setError($SYS->getErrorMessage());
+ return false;
+ }
+ }
+
return true ;
}
function unlinkProject($project) { // From the PFO spec
+ global $SYS;
$hp = $this->getHomeProject();
if ($hp != NULL && $hp->getID() == $project->getID()) {
$this->setError (_("Can't unlink from home project"));
$this->removeObsoleteSettings ();
+ foreach ($this->getUsers() as $u) {
+ if (!$SYS->sysCheckCreateUser($u->getID())) {
+ $this->setError($SYS->getErrorMessage());
+ return false;
+ }
+ }
+
return true ;
}
//
// Build an associative array of these key values + localized description
//
- $role_vals[$section][$this->role_values[$section][$i]]=$rbac_permission_names["$section".$this->role_values[$section][$i]];
+ $role_vals[$section][$this->role_values[$section][$i]] =
+ util_ifsetor($rbac_permission_names["$section".$this->role_values[$section][$i]],
+ _('UNKNOWN (internal error, report bug to FusionForge)'));
}
}
return $role_vals[$section];
case 'manager':
return (($value & 4) != 0) ;
break ;
+ case 'submit':
+ return (($value & 8) != 0) ;
+ break ;
+ /*
+ * bit4 (value & 16) is reserved
+ * for tracker item vote from Evolvis
+ */
}
break ;
foreach ($data as $sect => $refs) {
foreach ($refs as $refid => $value) {
$this->setSetting ($sect, $refid, $value) ;
- if ($sect == 'scm') {
- foreach ($this->getUsers() as $u) {
- if (!$SYS->sysGroupCheckUser($refid,$u->getID())) {
- $this->setError($SYS->getErrorMessage());
- db_rollback();
- return false;
- }
- }
- }
}
}
db_commit();
$this->fetchData($this->getID());
+
+ foreach ($this->getUsers() as $u) {
+ if (!$SYS->sysCheckCreateUser($u->getID())) {
+ $this->setError($SYS->getErrorMessage());
+ return false;
+ }
+ }
+
return true;
}
'forum')) ;
db_commit () ;
+ $this->fetchData($this->getID());
return true ;
}
}
public function addUser ($user) {
- return $this->addUsers (array ($user)) ;
+ if (!$this->addUsers (array ($user))) {
+ return false;
+ }
+ $hook_params['user'] = $user;
+ $hook_params['role'] = $this;
+ plugin_hook ("role_adduser", $hook_params);
+
+ return true;
}
public function removeUsers($users) {
}
public function removeUser ($user) {
- return $this->removeUsers (array ($user)) ;
+ if(!$this->removeUsers (array ($user))){
+ return false;
+ }
+ $hook_params['user'] = $user;
+ $hook_params['role'] = $this;
+ plugin_hook ("role_removeuser", $hook_params);
+
+ return true;
}
public function getUsers() {