diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 7d39ad127..74aa858f4 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -32,6 +32,7 @@ use OCA\Deck\Collaboration\Resources\ResourceProviderCard; use OCA\Deck\Db\Acl; use OCA\Deck\Db\AclMapper; use OCA\Deck\Db\AssignedUsersMapper; +use OCA\Deck\Db\BoardMapper; use OCA\Deck\Db\CardMapper; use OCA\Deck\Middleware\DefaultBoardMiddleware; use OCA\Deck\Middleware\ExceptionMiddleware; @@ -128,6 +129,13 @@ class Application extends App { foreach ($assignments as $assignment) { $assignmentMapper->delete($assignment); } + + /** @var BoardMapper $boardMapper */ + $boardMapper = $container->query(BoardMapper::class); + $boards = $boardMapper->findAllByOwner($user->getUID()); + foreach ($boards as $board) { + $boardMapper->delete($board); + } }); /** @var IUserManager $userManager */ diff --git a/lib/Db/BoardMapper.php b/lib/Db/BoardMapper.php index 43e070a6b..f122e05a4 100644 --- a/lib/Db/BoardMapper.php +++ b/lib/Db/BoardMapper.php @@ -106,6 +106,11 @@ class BoardMapper extends DeckMapper implements IPermissionMapper { return $entries; } + public function findAllByOwner(string $userId, int $limit = null, int $offset = null) { + $sql = 'SELECT * FROM `*PREFIX*deck_boards` WHERE owner = ?'; + return $this->findEntities($sql, [$userId], $limit, $offset); + } + /** * Find all boards for a given user *