diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-10-07 08:45:18 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-10-07 08:45:18 -0400 |
commit | 096b000c59842d0d2995ce66b84f9ca87370473f (patch) | |
tree | 4dcc1eb4473626b6390a5d4b9002d43c92e8e015 /app/Helper | |
parent | 4cc856344f0105fe893c384eeec6b14036321651 (diff) |
Add restriction to disable task drag and drop for a project
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; + } } |