From 096b000c59842d0d2995ce66b84f9ca87370473f Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Fri, 7 Oct 2016 08:45:18 -0400 Subject: Add restriction to disable task drag and drop for a project --- app/Helper/ProjectRoleHelper.php | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'app/Helper') diff --git a/app/Helper/ProjectRoleHelper.php b/app/Helper/ProjectRoleHelper.php index 87f7fed2..5c80d42b 100644 --- a/app/Helper/ProjectRoleHelper.php +++ b/app/Helper/ProjectRoleHelper.php @@ -62,7 +62,7 @@ class ProjectRoleHelper extends Base } } - return empty($sortableColumns); + return empty($sortableColumns) && $this->isAllowedToMoveTask($project_id, $role); } return true; @@ -97,7 +97,7 @@ class ProjectRoleHelper extends Base } } - return empty($sortableColumns); + return empty($sortableColumns) && $this->isAllowedToMoveTask($project_id, $role); } return true; @@ -263,4 +263,24 @@ class ProjectRoleHelper extends Base return true; } + + /** + * Check if the role can move task in the given project + * + * @param int $project_id + * @param string $role + * @return bool + */ + protected function isAllowedToMoveTask($project_id, $role) + { + $projectRestrictions = $this->projectRoleRestrictionCacheDecorator->getAllByRole($project_id, $role); + + foreach ($projectRestrictions as $restriction) { + if ($restriction['rule'] == ProjectRoleRestrictionModel::RULE_TASK_MOVE) { + return false; + } + } + + return true; + } } -- cgit v1.2.3