summaryrefslogtreecommitdiff
path: root/app/Helper
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-10-07 08:45:18 -0400
committerFrederic Guillot <fred@kanboard.net>2016-10-07 08:45:18 -0400
commit096b000c59842d0d2995ce66b84f9ca87370473f (patch)
tree4dcc1eb4473626b6390a5d4b9002d43c92e8e015 /app/Helper
parent4cc856344f0105fe893c384eeec6b14036321651 (diff)
Add restriction to disable task drag and drop for a project
Diffstat (limited to 'app/Helper')
-rw-r--r--app/Helper/ProjectRoleHelper.php24
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;
+ }
}