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)