private function adjustPermissionsForGroup(Tracker_Permission_PermissionSetter $permission_setter, $ugroup_id, $permission_type) { switch ($permission_type) { case Tracker_Permission_Command::PERMISSION_FULL: $permission_setter->grant(Tracker::PERMISSION_FULL, $ugroup_id); break; case Tracker_Permission_Command::PERMISSION_ASSIGNEE: if ($this->canSetAssignee($permission_setter, $ugroup_id)) { $permission_setter->grant(Tracker::PERMISSION_ASSIGNEE, $ugroup_id); } break; case Tracker_Permission_Command::PERMISSION_SUBMITTER: if ($this->canSetSubmitter($permission_setter, $ugroup_id)) { $permission_setter->grant(Tracker::PERMISSION_SUBMITTER, $ugroup_id); } break; case Tracker_Permission_Command::PERMISSION_ASSIGNEE_AND_SUBMITTER: if ($this->canSetSubmitterAndAssignee($permission_setter, $ugroup_id)) { $permission_setter->revokeAll($ugroup_id); $permission_setter->grantAccess(Tracker::PERMISSION_ASSIGNEE, $ugroup_id); $permission_setter->grantAccess(Tracker::PERMISSION_SUBMITTER, $ugroup_id); } break; case Tracker_Permission_Command::PERMISSION_SUBMITTER_ONLY: $permission_setter->grant(Tracker::PERMISSION_SUBMITTER_ONLY, $ugroup_id); break; case Tracker_Permission_Command::PERMISSION_ADMIN: $permission_setter->grant(Tracker::PERMISSION_ADMIN, $ugroup_id); break; case Tracker_Permission_Command::PERMISSION_NONE: $permission_setter->revokeAll($ugroup_id); break; } }