summaryrefslogtreecommitdiff
path: root/app/Helper
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2017-04-05 22:53:54 -0400
committerFrederic Guillot <fred@kanboard.net>2017-04-05 22:53:54 -0400
commit481e767d3533449e63eda1767c5e6c071d3442a3 (patch)
treeac97a2bb3d31078e2f88ea5346bc9745b136903d /app/Helper
parent22f48ea2897d95c8a31e26a0b3313559de8839d6 (diff)
Add new project restriction to block assignee change
Diffstat (limited to 'app/Helper')
-rw-r--r--app/Helper/ProjectRoleHelper.php18
-rw-r--r--app/Helper/TaskHelper.php4
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');