diff options
Diffstat (limited to 'app/Helper')
-rw-r--r-- | app/Helper/ProjectRoleHelper.php | 24 |
1 files changed, 22 insertions, 2 deletions
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; + } } |