Merge pull request #2334 from nextcloud/bugfixes
This commit is contained in:
@@ -59,7 +59,7 @@ class DeckCalendarBackend {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getBoards(): array {
|
public function getBoards(): array {
|
||||||
return $this->boardService->findAll();
|
return $this->boardService->findAll(-1, null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBoard(int $id): Board {
|
public function getBoard(int $id): Board {
|
||||||
|
|||||||
@@ -93,10 +93,18 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
|
|||||||
* @param null $offset
|
* @param null $offset
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function findAllByUser($userId, $limit = null, $offset = null, $since = -1) {
|
public function findAllByUser($userId, $limit = null, $offset = null, $since = -1, $includeArchived = true) {
|
||||||
$sql = 'SELECT id, title, owner, color, archived, deleted_at, 0 as shared, last_modified FROM `*PREFIX*deck_boards` WHERE owner = ? AND last_modified > ? UNION ' .
|
// FIXME: One moving to QBMapper we should allow filtering the boards probably by method chaining for additional where clauses
|
||||||
|
$sql = 'SELECT id, title, owner, color, archived, deleted_at, 0 as shared, last_modified FROM `*PREFIX*deck_boards` WHERE owner = ? AND last_modified > ?';
|
||||||
|
if (!$includeArchived) {
|
||||||
|
$sql .= ' AND NOT archived';
|
||||||
|
}
|
||||||
|
$sql .= ' UNION ' .
|
||||||
'SELECT boards.id, title, owner, color, archived, deleted_at, 1 as shared, last_modified FROM `*PREFIX*deck_boards` as boards ' .
|
'SELECT boards.id, title, owner, color, archived, deleted_at, 1 as shared, last_modified FROM `*PREFIX*deck_boards` as boards ' .
|
||||||
'JOIN `*PREFIX*deck_board_acl` as acl ON boards.id=acl.board_id WHERE acl.participant=? AND acl.type=? AND boards.owner != ? AND last_modified > ?';
|
'JOIN `*PREFIX*deck_board_acl` as acl ON boards.id=acl.board_id WHERE acl.participant=? AND acl.type=? AND boards.owner != ? AND last_modified > ?';
|
||||||
|
if (!$includeArchived) {
|
||||||
|
$sql .= ' AND NOT archived';
|
||||||
|
}
|
||||||
$entries = $this->findEntities($sql, [$userId, $since, $userId, Acl::PERMISSION_TYPE_USER, $userId, $since], $limit, $offset);
|
$entries = $this->findEntities($sql, [$userId, $since, $userId, Acl::PERMISSION_TYPE_USER, $userId, $since], $limit, $offset);
|
||||||
/* @var Board $entry */
|
/* @var Board $entry */
|
||||||
foreach ($entries as $entry) {
|
foreach ($entries as $entry) {
|
||||||
@@ -120,7 +128,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
|
|||||||
* @param null $offset
|
* @param null $offset
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function findAllByGroups($userId, $groups, $limit = null, $offset = null) {
|
public function findAllByGroups($userId, $groups, $limit = null, $offset = null, $since = -1,$includeArchived = true) {
|
||||||
if (count($groups) <= 0) {
|
if (count($groups) <= 0) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@@ -132,7 +140,10 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
|
|||||||
$sql .= ' OR ';
|
$sql .= ' OR ';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sql .= ');';
|
$sql .= ')';
|
||||||
|
if (!$includeArchived) {
|
||||||
|
$sql .= ' AND NOT archived';
|
||||||
|
}
|
||||||
$entries = $this->findEntities($sql, array_merge([$userId, Acl::PERMISSION_TYPE_GROUP], $groups), $limit, $offset);
|
$entries = $this->findEntities($sql, array_merge([$userId, Acl::PERMISSION_TYPE_GROUP], $groups), $limit, $offset);
|
||||||
/* @var Board $entry */
|
/* @var Board $entry */
|
||||||
foreach ($entries as $entry) {
|
foreach ($entries as $entry) {
|
||||||
@@ -142,7 +153,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
|
|||||||
return $entries;
|
return $entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function findAllByCircles($userId, $limit = null, $offset = null) {
|
public function findAllByCircles($userId, $limit = null, $offset = null, $since = -1,$includeArchived = true) {
|
||||||
if (!$this->circlesEnabled) {
|
if (!$this->circlesEnabled) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@@ -161,7 +172,10 @@ class BoardMapper extends DeckMapper implements IPermissionMapper {
|
|||||||
$sql .= ' OR ';
|
$sql .= ' OR ';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sql .= ');';
|
$sql .= ')';
|
||||||
|
if (!$includeArchived) {
|
||||||
|
$sql .= ' AND NOT archived';
|
||||||
|
}
|
||||||
$entries = $this->findEntities($sql, array_merge([$userId, Acl::PERMISSION_TYPE_CIRCLE], $circles), $limit, $offset);
|
$entries = $this->findEntities($sql, array_merge([$userId, Acl::PERMISSION_TYPE_CIRCLE], $circles), $limit, $offset);
|
||||||
/* @var Board $entry */
|
/* @var Board $entry */
|
||||||
foreach ($entries as $entry) {
|
foreach ($entries as $entry) {
|
||||||
|
|||||||
@@ -107,11 +107,11 @@ class BoardService {
|
|||||||
$this->userId = $userId;
|
$this->userId = $userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUserBoards(int $since = -1): array {
|
public function getUserBoards(int $since = -1, $includeArchived = true): array {
|
||||||
$userInfo = $this->getBoardPrerequisites();
|
$userInfo = $this->getBoardPrerequisites();
|
||||||
$userBoards = $this->boardMapper->findAllByUser($userInfo['user'], null, null, $since);
|
$userBoards = $this->boardMapper->findAllByUser($userInfo['user'], null, null, $since, $includeArchived);
|
||||||
$groupBoards = $this->boardMapper->findAllByGroups($userInfo['user'], $userInfo['groups'],null, null, $since);
|
$groupBoards = $this->boardMapper->findAllByGroups($userInfo['user'], $userInfo['groups'],null, null, $since, $includeArchived);
|
||||||
$circleBoards = $this->boardMapper->findAllByCircles($userInfo['user'], null, null, $since);
|
$circleBoards = $this->boardMapper->findAllByCircles($userInfo['user'], null, null, $since, $includeArchived);
|
||||||
$mergedBoards = array_merge($userBoards, $groupBoards, $circleBoards);
|
$mergedBoards = array_merge($userBoards, $groupBoards, $circleBoards);
|
||||||
$result = [];
|
$result = [];
|
||||||
/** @var Board $item */
|
/** @var Board $item */
|
||||||
@@ -125,11 +125,11 @@ class BoardService {
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function findAll($since = -1, $details = null) {
|
public function findAll($since = -1, $details = null, $includeArchived = true) {
|
||||||
if ($this->boardsCache) {
|
if ($this->boardsCache) {
|
||||||
return $this->boardsCache;
|
return $this->boardsCache;
|
||||||
}
|
}
|
||||||
$complete = $this->getUserBoards($since);
|
$complete = $this->getUserBoards($since, $includeArchived);
|
||||||
$result = [];
|
$result = [];
|
||||||
/** @var Board $item */
|
/** @var Board $item */
|
||||||
foreach ($complete as &$item) {
|
foreach ($complete as &$item) {
|
||||||
|
|||||||
12
package-lock.json
generated
12
package-lock.json
generated
@@ -3631,9 +3631,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@nextcloud/vue": {
|
"@nextcloud/vue": {
|
||||||
"version": "2.6.5",
|
"version": "2.6.8",
|
||||||
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-2.6.5.tgz",
|
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-2.6.8.tgz",
|
||||||
"integrity": "sha512-ZeY4n/TJ0cRu/iDgLGCwFSksvStMO+fAeJfANwjp52LjrpFXuJjxqG8ZKBdr7zJewj/yTOq6k0wMDnyBFTgnXA==",
|
"integrity": "sha512-9yi9V4gX4Y1uxh2hNxCAlTHaS9zolzAy7x1sowII/WZfxMysF/yIGmEsnYGyz6CZ5eYCzxNUgrU5p/HQ21/09Q==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@nextcloud/auth": "^1.2.3",
|
"@nextcloud/auth": "^1.2.3",
|
||||||
"@nextcloud/axios": "^1.3.2",
|
"@nextcloud/axios": "^1.3.2",
|
||||||
@@ -7434,9 +7434,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"emoji-mart-vue-fast": {
|
"emoji-mart-vue-fast": {
|
||||||
"version": "7.0.4",
|
"version": "7.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/emoji-mart-vue-fast/-/emoji-mart-vue-fast-7.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-mart-vue-fast/-/emoji-mart-vue-fast-7.0.5.tgz",
|
||||||
"integrity": "sha512-VZuyclCe7ZNPhSvt7WT258MscqRBZTB2Is/7vBilCXgpiZqByaA4AhM1xdIIZZik/aA+5BQiZVmbsDK0jk78Eg==",
|
"integrity": "sha512-+ayg30hhxqqM9oMtN9uUG470hT9gtOdFenByJJBm3XTfzI2QMVJ69euwk+xF55OphLfKZxQG7mnVz13lDOjb3g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/polyfill": "7.2.5",
|
"@babel/polyfill": "7.2.5",
|
||||||
"@babel/runtime": "7.3.4",
|
"@babel/runtime": "7.3.4",
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
"@nextcloud/l10n": "^1.4.1",
|
"@nextcloud/l10n": "^1.4.1",
|
||||||
"@nextcloud/moment": "^1.1.1",
|
"@nextcloud/moment": "^1.1.1",
|
||||||
"@nextcloud/router": "^1.2.0",
|
"@nextcloud/router": "^1.2.0",
|
||||||
"@nextcloud/vue": "^2.6.5",
|
"@nextcloud/vue": "^2.6.8",
|
||||||
"@nextcloud/vue-dashboard": "^1.0.1",
|
"@nextcloud/vue-dashboard": "^1.0.1",
|
||||||
"blueimp-md5": "^2.18.0",
|
"blueimp-md5": "^2.18.0",
|
||||||
"dompurify": "^2.1.1",
|
"dompurify": "^2.1.1",
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ export default {
|
|||||||
|
|
||||||
sharee.value = item.value
|
sharee.value = item.value
|
||||||
return sharee
|
return sharee
|
||||||
})
|
}).slice(0, 10)
|
||||||
},
|
},
|
||||||
unallocatedSharees() {
|
unallocatedSharees() {
|
||||||
return this.sharees.filter((sharee) => {
|
return this.sharees.filter((sharee) => {
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ export default {
|
|||||||
return this.$store.getters.canEdit
|
return this.$store.getters.canEdit
|
||||||
}
|
}
|
||||||
const board = this.$store.getters.boards.find((item) => item.id === this.card.boardId)
|
const board = this.$store.getters.boards.find((item) => item.id === this.card.boardId)
|
||||||
return board.permissions.PERMISSION_EDIT
|
return board ? board.permissions.PERMISSION_EDIT : false
|
||||||
},
|
},
|
||||||
card() {
|
card() {
|
||||||
return this.item ? this.item : this.$store.getters.cardById(this.id)
|
return this.item ? this.item : this.$store.getters.cardById(this.id)
|
||||||
|
|||||||
Reference in New Issue
Block a user