diff --git a/lib/Controller/BoardController.php b/lib/Controller/BoardController.php index 086cf8a59..b82629723 100644 --- a/lib/Controller/BoardController.php +++ b/lib/Controller/BoardController.php @@ -27,6 +27,8 @@ use OCA\Deck\Db\Acl; use OCA\Deck\Service\BoardService; use OCA\Deck\Service\PermissionService; use OCP\AppFramework\ApiController; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataResponse; use OCP\IRequest; class BoardController extends ApiController { @@ -163,7 +165,11 @@ class BoardController extends ApiController { * @param $newOwner * * @return null|void */ - public function transferOwner($boardId, $owner, $newOwner) { - return $this->boardService->transferOwnership($owner, $newOwner); + public function transferOwner(int $boardId, string $newOwner): DataResponse { + if ($this->permissionService->userIsBoardOwner($boardId, $this->userId)) { + return new DataResponse($this->boardService->transferBoardOwnership($boardId, $newOwner), HTTP::STATUS_OK); + } + + return new DataResponse([], HTTP::STATUS_UNAUTHORIZED); } } diff --git a/lib/Service/BoardService.php b/lib/Service/BoardService.php index 3bfd9ec97..0bbde4cb8 100644 --- a/lib/Service/BoardService.php +++ b/lib/Service/BoardService.php @@ -743,12 +743,6 @@ class BoardService { $this->boardsCache = null; } - private function getBoardOwner($boardId) { - $board = $this->boardMapper->find($boardId); - - return $board->getOwner(); - } - /** * Clean a given board data from the Cache */ diff --git a/src/components/board/SharingTabSidebar.vue b/src/components/board/SharingTabSidebar.vue index d09c99afd..b51089eb6 100644 --- a/src/components/board/SharingTabSidebar.vue +++ b/src/components/board/SharingTabSidebar.vue @@ -53,7 +53,7 @@ {{ t('deck', 'Can manage') }} - + {{ t('deck', 'Owner') }} @@ -198,7 +198,7 @@ export default { clickDeleteAcl(acl) { this.$store.dispatch('deleteAclFromCurrentBoard', acl) }, - clickTranserOwner(newOwner) { + clickTransferOwner(newOwner) { OC.dialogs.confirmDestructive( t('deck', 'Are you sure you want to transfer the board {title} for {user} ?', { title: this.board.title, user: newOwner }), t('deck', 'Transfer the board.'), @@ -214,8 +214,7 @@ export default { this.isLoading = true await this.$store.dispatch('transferOwnership', { boardId: this.board.id, - newOwner, - owner: this.board.owner.uid, + newOwner }) const successMessage = t('deck', 'Transfer the board for {user} successfully', { user: newOwner }) showSuccess(successMessage)