diff options
author | Frederic Guillot <fred@kanboard.net> | 2017-04-05 22:53:54 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2017-04-05 22:53:54 -0400 |
commit | 481e767d3533449e63eda1767c5e6c071d3442a3 (patch) | |
tree | ac97a2bb3d31078e2f88ea5346bc9745b136903d /app/Helper | |
parent | 22f48ea2897d95c8a31e26a0b3313559de8839d6 (diff) |
Add new project restriction to block assignee change
Diffstat (limited to 'app/Helper')
-rw-r--r-- | app/Helper/ProjectRoleHelper.php | 18 | ||||
-rw-r--r-- | app/Helper/TaskHelper.php | 4 |
2 files changed, 22 insertions, 0 deletions
diff --git a/app/Helper/ProjectRoleHelper.php b/app/Helper/ProjectRoleHelper.php index fd7a690b..508dc9e0 100644 --- a/app/Helper/ProjectRoleHelper.php +++ b/app/Helper/ProjectRoleHelper.php @@ -172,6 +172,24 @@ class ProjectRoleHelper extends Base } /** + * Return true if the user can change assignee + * + * @public + * @param array $task + * @return bool + */ + public function canChangeAssignee(array $task) + { + $role = $this->getProjectUserRole($task['project_id']); + + if ($this->hasRestriction($task['project_id'], $role, ProjectRoleRestrictionModel::RULE_TASK_CHANGE_ASSIGNEE)) { + return false; + } + + return true; + } + + /** * Check project access * * @param string $controller diff --git a/app/Helper/TaskHelper.php b/app/Helper/TaskHelper.php index 69520c03..334f4f33 100644 --- a/app/Helper/TaskHelper.php +++ b/app/Helper/TaskHelper.php @@ -93,6 +93,10 @@ class TaskHelper extends Base public function renderAssigneeField(array $users, array $values, array $errors = array(), array $attributes = array()) { + if (isset($values['project_id']) && ! $this->helper->projectRole->canChangeAssignee($values)) { + return ''; + } + $attributes = array_merge(array('tabindex="3"'), $attributes); $html = $this->helper->form->label(t('Assignee'), 'owner_id'); |