diff --git a/lib/Db/BoardMapper.php b/lib/Db/BoardMapper.php index a0f66d21d..5438031b3 100644 --- a/lib/Db/BoardMapper.php +++ b/lib/Db/BoardMapper.php @@ -5,20 +5,20 @@ * @author Julius Härtl * * @license GNU AGPL version 3 or any later version - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . - * + * */ namespace OCA\Deck\Db; @@ -28,16 +28,16 @@ use OCP\IDb; class BoardMapper extends DeckMapper implements IPermissionMapper { - private $labelMapper; + private $labelMapper; private $aclMapper; private $stackMapper; - public function __construct(IDb $db, LabelMapper $labelMapper, AclMapper $aclMapper, StackMapper $stackMapper) { - parent::__construct($db, 'deck_boards', '\OCA\Deck\Db\Board'); - $this->labelMapper = $labelMapper; - $this->aclMapper = $aclMapper; + public function __construct(IDb $db, LabelMapper $labelMapper, AclMapper $aclMapper, StackMapper $stackMapper) { + parent::__construct($db, 'deck_boards', '\OCA\Deck\Db\Board'); + $this->labelMapper = $labelMapper; + $this->aclMapper = $aclMapper; $this->stackMapper = $stackMapper; - } + } /** @@ -46,41 +46,46 @@ class BoardMapper extends DeckMapper implements IPermissionMapper { * @param bool $withAcl * @return \OCP\AppFramework\Db\Entity if not found */ - public function find($id, $withLabels=false, $withAcl=false) { - $sql = 'SELECT id, title, owner, color, archived FROM `*PREFIX*deck_boards` ' . - 'WHERE `id` = ?'; - $board = $this->findEntity($sql, [$id]); + public function find($id, $withLabels = false, $withAcl = false) { + $sql = 'SELECT id, title, owner, color, archived FROM `*PREFIX*deck_boards` ' . + 'WHERE `id` = ?'; + $board = $this->findEntity($sql, [$id]); - // Add labels - $labels = $this->labelMapper->findAll($id); - $board->setLabels($labels); + // Add labels + if ($withLabels) { + $labels = $this->labelMapper->findAll($id); + $board->setLabels($labels); + } - // Add acl - $acl = $this->aclMapper->findAll($id); - $board->setAcl($acl); - - return $board; - } + // Add acl + if ($withAcl) { + $acl = $this->aclMapper->findAll($id); + $board->setAcl($acl); + } - /** - * Find all boards for a given user - * @param $userId - * @param null $limit - * @param null $offset - * @return array - */ - public function findAllByUser($userId, $limit=null, $offset=null) { - $sql = 'SELECT id, title, owner, color, archived, 0 as shared FROM oc_deck_boards WHERE owner = ? UNION ' . - 'SELECT boards.id, title, owner, color, archived, 1 as shared FROM oc_deck_boards as boards ' . - 'JOIN oc_deck_board_acl as acl ON boards.id=acl.board_id WHERE acl.participant=? AND acl.type=\'user\' AND boards.owner != ?'; - $entries = $this->findEntities($sql, [$userId, $userId, $userId], $limit, $offset); - /* @var Board $entry */ - foreach ($entries as $entry) { - $acl = $this->aclMapper->findAll($entry->id); - $entry->setAcl($acl); - } - return $entries; - } + return $board; + } + + /** + * Find all boards for a given user + * + * @param $userId + * @param null $limit + * @param null $offset + * @return array + */ + public function findAllByUser($userId, $limit = null, $offset = null) { + $sql = 'SELECT id, title, owner, color, archived, 0 as shared FROM oc_deck_boards WHERE owner = ? UNION ' . + 'SELECT boards.id, title, owner, color, archived, 1 as shared FROM oc_deck_boards as boards ' . + 'JOIN oc_deck_board_acl as acl ON boards.id=acl.board_id WHERE acl.participant=? AND acl.type=\'user\' AND boards.owner != ?'; + $entries = $this->findEntities($sql, [$userId, $userId, $userId], $limit, $offset); + /* @var Board $entry */ + foreach ($entries as $entry) { + $acl = $this->aclMapper->findAll($entry->id); + $entry->setAcl($acl); + } + return $entries; + } /** * Find all boards for a given user @@ -91,31 +96,31 @@ class BoardMapper extends DeckMapper implements IPermissionMapper { * @param null $offset * @return array */ - public function findAllByGroups($userId, $groups, $limit=null, $offset=null) { - if(count($groups)<=0) { - return []; - } - $sql = 'SELECT boards.id, title, owner, color, archived, 2 as shared FROM oc_deck_boards as boards ' . - 'INNER JOIN oc_deck_board_acl as acl ON boards.id=acl.board_id WHERE owner != ? AND type=\'group\' AND ('; - for($i=0;$i1 && $i 1 && $i < count($groups) - 1) { $sql .= ' OR '; } } - $sql .= ');'; - $entries = $this->findEntities($sql, array_merge([$userId], $groups), $limit, $offset); - /* @var Board $entry */ - foreach ($entries as $entry) { - $acl = $this->aclMapper->findAll($entry->id); - $entry->setAcl($acl); - } - return $entries; - } + $sql .= ');'; + $entries = $this->findEntities($sql, array_merge([$userId], $groups), $limit, $offset); + /* @var Board $entry */ + foreach ($entries as $entry) { + $acl = $this->aclMapper->findAll($entry->id); + $entry->setAcl($acl); + } + return $entries; + } - public function delete(/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ + public function delete(/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ \OCP\AppFramework\Db\Entity $entity) { - // delete acl + // delete acl $acl = $this->aclMapper->findAll($entity->getId()); foreach ($acl as $item) { $this->aclMapper->delete($item); @@ -132,17 +137,17 @@ class BoardMapper extends DeckMapper implements IPermissionMapper { $this->labelMapper->delete($label); } - return parent::delete($entity); - } + return parent::delete($entity); + } - public function isOwner($userId, $boardId) { - $board = $this->find($boardId); - return ($board->getOwner() === $userId); - } + public function isOwner($userId, $boardId) { + $board = $this->find($boardId); + return ($board->getOwner() === $userId); + } - public function findBoardId($id) { - return $id; - } + public function findBoardId($id) { + return $id; + } } \ No newline at end of file diff --git a/lib/Service/CardService.php b/lib/Service/CardService.php index 27dc81247..6b4bc8af8 100644 --- a/lib/Service/CardService.php +++ b/lib/Service/CardService.php @@ -97,7 +97,7 @@ class CardService { $this->cardMapper->update($card); } // FIXME: return reordered cards without an additional db query - //$cards = $this->cardMapper->findAll($stackId); + $cards = $this->cardMapper->findAll($stackId); return $cards; }