From 8dff58457619547641b0375d2fc74c95fb272b2a Mon Sep 17 00:00:00 2001 From: tianshujie Date: Mon, 18 Jul 2022 17:51:05 +0800 Subject: [PATCH] * Finish task #61169. --- module/kanban/model.php | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/module/kanban/model.php b/module/kanban/model.php index 08ed5d539f..d220bae16f 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -2235,6 +2235,18 @@ class kanbanModel extends model $this->loadModel('file')->saveUpload('kanban', $kanbanID); $this->file->updateObjectID($this->post->uid, $kanbanID, 'kanban'); + if(isset($_POST['team'])) + { + $kanbanMembers = empty($kanban->team) ? array() : explode(',', $kanban->team); + $type = 'team'; + } + elseif(isset($_POST['whitelist'])) + { + $kanbanMembers = empty($kanban->whitelist) ? array() : explode(',', $kanban->whitelist); + $type = 'whitelist'; + } + $this->addSpaceMembers($kanban->space, $type, $kanbanMembers); + return $kanbanID; } } @@ -2283,6 +2295,19 @@ class kanbanModel extends model $this->loadModel('file')->saveUpload('kanban', $kanbanID); $this->file->updateObjectID($this->post->uid, $kanbanID, 'kanban'); + if(isset($_POST['team'])) + { + $kanbanMembers = empty($kanban->team) ? array() : explode(',', $kanban->team); + $type = 'team'; + } + elseif(isset($_POST['whitelist'])) + { + $kanbanMembers = empty($kanban->whitelist) ? array() : explode(',', $kanban->whitelist); + $type = 'whitelist'; + } + + $this->addSpaceMembers($kanban->space, $type, $kanbanMembers); + return common::createChanges($oldKanban, $kanban); } } @@ -2559,6 +2584,41 @@ class kanbanModel extends model } } + /** + * Add space members. + * + * @param int $spaceID + * @param array $type team|whitelist + * @param array $kanbanMembers + * @access public + * @return void + */ + public function addSpaceMembers($spaceID, $type, $kanbanMembers = array()) + { + $space = $this->getSpaceById($spaceID); + $members = ''; + + if($type == 'team') + { + $spaceMembers = empty($space->team) ? array() : explode(',', $space->team); + $members = $space->team; + } + elseif($type == 'whitelist') + { + $spaceMembers = empty($space->whitelist) ? array() : explode(',', $space->whitelist); + $members = $space->whitelist; + } + + $addMembers = array_diff($kanbanMembers, $spaceMembers); + + if(!empty($addMembers)) + { + $addMembers = implode(',', $addMembers); + $members .= ',' . trim($addMembers, ','); + $this->dao->update(TABLE_KANBANSPACE)->set($type)->eq($members)->where('id')->eq($spaceID)->exec(); + } + } + /** * Remove kanban cell. *