From 73dce1279760434e1d1b7a903a0a7500462d6f9c Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Wed, 8 Feb 2017 18:36:13 -0500 Subject: Prevent people to remove columns that contains tasks --- app/Api/Procedure/ColumnProcedure.php | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'app/Api/Procedure') diff --git a/app/Api/Procedure/ColumnProcedure.php b/app/Api/Procedure/ColumnProcedure.php index ab9d173b..3ffe12ba 100644 --- a/app/Api/Procedure/ColumnProcedure.php +++ b/app/Api/Procedure/ColumnProcedure.php @@ -4,6 +4,7 @@ namespace Kanboard\Api\Procedure; use Kanboard\Api\Authorization\ColumnAuthorization; use Kanboard\Api\Authorization\ProjectAuthorization; +use Kanboard\Model\TaskModel; /** * Column API controller @@ -40,6 +41,15 @@ class ColumnProcedure extends BaseProcedure public function removeColumn($column_id) { ColumnAuthorization::getInstance($this->container)->check($this->getClassName(), 'removeColumn', $column_id); + + $projectId = $this->columnModel->getProjectId($column_id); + $nbTasks = $this->taskFinderModel->countByColumnId($projectId, $column_id, array(TaskModel::STATUS_OPEN, TaskModel::STATUS_CLOSED)); + + if ($nbTasks > 0) { + $this->logger->error(__METHOD__.': This column cannot be removed because it contains '.$nbTasks.' tasks'); + return false; + } + return $this->columnModel->remove($column_id); } -- cgit v1.2.3