Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions lib/Db/BookmarkMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ public function find(int $id): Bookmark {
$qb
->select(Bookmark::$columns)
->from('bookmarks')
->where($qb->expr()->eq('id', $qb->createNamedParameter($id)));
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)));

return $this->findEntity($qb);
}
Expand Down Expand Up @@ -718,7 +718,7 @@ public function findPendingPreviews(int $limit, int $stalePeriod): array {
$qb = $this->db->getQueryBuilder();
$qb->select(Bookmark::$columns);
$qb->from('bookmarks', 'b');
$qb->where($qb->expr()->lt('last_preview', $qb->createPositionalParameter($this->time->getTime() - $stalePeriod)));
$qb->where($qb->expr()->lt('last_preview', $qb->createPositionalParameter($this->time->getTime() - $stalePeriod, IQueryBuilder::PARAM_INT)));
$qb->orWhere($qb->expr()->isNull('last_preview'));
$qb->setMaxResults($limit);
return $this->findEntities($qb);
Expand All @@ -731,7 +731,7 @@ public function findPendingPreviews(int $limit, int $stalePeriod): array {
public function clearLastPreviews(): void {
$qb = $this->db->getQueryBuilder();
$qb->update('bookmarks');
$qb->set('last_preview', $qb->createNamedParameter(0));
$qb->set('last_preview', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT));
$qb->executeStatement();
}

Expand Down
5 changes: 3 additions & 2 deletions lib/Db/FolderMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\Exception;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IDBConnection;

Expand Down Expand Up @@ -70,7 +71,7 @@ public function find(int $id): Folder {
$qb
->select('*')
->from('bookmarks_folders')
->where($qb->expr()->eq('id', $qb->createNamedParameter($id)));
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)));

return $this->findEntity($qb);
}
Expand Down Expand Up @@ -102,7 +103,7 @@ public function findRootFolder(string $userId): Folder {
->insert('bookmarks_root_folders')
->values([
'user_id' => $qb->createPositionalParameter($userId),
'folder_id' => $qb->createPositionalParameter($rootFolder->getId()),
'folder_id' => $qb->createPositionalParameter($rootFolder->getId(), IQueryBuilder::PARAM_INT),
])
->execute();
} catch (MultipleObjectsReturnedException $e) {
Expand Down
5 changes: 3 additions & 2 deletions lib/Db/PublicFolderMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use OCP\AppFramework\Db\Entity;
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use RangeException;

Expand Down Expand Up @@ -65,7 +66,7 @@ public function findByFolder(int $folderId): PublicFolder {
$qb
->select('*')
->from('bookmarks_folders_public')
->where($qb->expr()->eq('folder_id', $qb->createNamedParameter($folderId)));
->where($qb->expr()->eq('folder_id', $qb->createNamedParameter($folderId, IQueryBuilder::PARAM_INT)));

return $this->findEntity($qb);
}
Expand All @@ -82,7 +83,7 @@ public function findAllCreatedBefore(int $createdAt): array {
$qb
->select('*')
->from('bookmarks_folders_public')
->where($qb->expr()->lt('created_at', $qb->createNamedParameter($createdAt)));
->where($qb->expr()->lt('created_at', $qb->createNamedParameter($createdAt, IQueryBuilder::PARAM_INT)));

return $this->findEntities($qb);
}
Expand Down
20 changes: 13 additions & 7 deletions lib/Db/ShareMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\Exception;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;

/**
Expand Down Expand Up @@ -47,7 +48,7 @@ public function find(int $shareId): Share {
$qb = $this->db->getQueryBuilder();
$qb->select(Share::$columns)
->from('bookmarks_shares')
->where($qb->expr()->eq('id', $qb->createPositionalParameter($shareId)));
->where($qb->expr()->eq('id', $qb->createPositionalParameter($shareId, IQueryBuilder::PARAM_INT)));
return $this->findEntity($qb);
}

Expand All @@ -59,7 +60,7 @@ public function findByFolder(int $folderId): array {
$qb = $this->db->getQueryBuilder();
$qb->select(Share::$columns)
->from('bookmarks_shares')
->where($qb->expr()->eq('folder_id', $qb->createPositionalParameter($folderId)));
->where($qb->expr()->eq('folder_id', $qb->createPositionalParameter($folderId, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
}

Expand Down Expand Up @@ -92,7 +93,7 @@ public function findByParticipant(int $type, string $participant): array {
$qb->select(Share::$columns)
->from('bookmarks_shares')
->where($qb->expr()->eq('participant', $qb->createPositionalParameter($participant)))
->andWhere($qb->expr()->eq('type', $qb->createPositionalParameter($type)));
->andWhere($qb->expr()->eq('type', $qb->createPositionalParameter($type, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
}

Expand All @@ -110,9 +111,9 @@ public function findByFolderAndParticipant(int $folderId, int $type, string $par
return 's.' . $c;
}, Share::$columns))
->from('bookmarks_shares')
->where($qb->expr()->eq('folder_id', $qb->createPositionalParameter($folderId)))
->where($qb->expr()->eq('folder_id', $qb->createPositionalParameter($folderId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('participant', $qb->createPositionalParameter($participant)))
->andWhere($qb->expr()->eq('type', $qb->createPositionalParameter($type)));
->andWhere($qb->expr()->eq('type', $qb->createPositionalParameter($type, IQueryBuilder::PARAM_INT)));
return $this->findEntity($qb);
}

Expand All @@ -131,7 +132,7 @@ public function findByFolderAndUser(int $folderId, string $userId): Share {
->from('bookmarks_shares', 's')
->leftJoin('s', 'bookmarks_shared_to_shares', 't', 's.id = t.share_id')
->leftJoin('t', 'bookmarks_shared_folders', 'sf', 'sf.id = t.shared_folder_id')
->where($qb->expr()->eq('s.folder_id', $qb->createPositionalParameter($folderId)))
->where($qb->expr()->eq('s.folder_id', $qb->createPositionalParameter($folderId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('sf.user_id', $qb->createPositionalParameter($userId)));
return $this->findEntity($qb);
}
Expand Down Expand Up @@ -176,14 +177,19 @@ public function insertOrUpdate(Entity $entity): Share {
return parent::insertOrUpdate($entity);
}

/**
* @throws DoesNotExistException
* @throws MultipleObjectsReturnedException
* @throws Exception
*/
public function findBySharedFolder(int $id): Share {
$qb = $this->db->getQueryBuilder();
$qb->select(array_map(static function ($c) {
return 's.' . $c;
}, Share::$columns))
->from('bookmarks_shares', 's')
->innerJoin('s', 'bookmarks_shared_to_shares', 't', 's.id = t.share_id')
->where($qb->expr()->eq('t.shared_folder_id', $qb->createPositionalParameter($id)));
->where($qb->expr()->eq('t.shared_folder_id', $qb->createPositionalParameter($id, IQueryBuilder::PARAM_INT)));
return $this->findEntity($qb);
}

Expand Down
21 changes: 11 additions & 10 deletions lib/Db/SharedFolderMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\Exception;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IDBConnection;

Expand Down Expand Up @@ -55,7 +56,7 @@ public function find(int $id): SharedFolder {
$qb = $this->db->getQueryBuilder();
$qb->select(SharedFolder::$columns)
->from('bookmarks_shared_folders', 'sf')
->where($qb->expr()->eq('sf.id', $qb->createPositionalParameter($id)));
->where($qb->expr()->eq('sf.id', $qb->createPositionalParameter($id, IQueryBuilder::PARAM_INT)));
return $this->findEntity($qb);
}

Expand All @@ -68,7 +69,7 @@ public function findByShare(int $shareId): array {
$qb->select(SharedFolder::$columns)
->from('bookmarks_shared_folders', 'sf')
->join('sf', 'bookmarks_shared_to_shares', 't', $qb->expr()->eq('sf.id', 't.shared_folder_id'))
->where($qb->expr()->eq('t.share_id', $qb->createPositionalParameter($shareId)));
->where($qb->expr()->eq('t.share_id', $qb->createPositionalParameter($shareId, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
}

Expand All @@ -82,7 +83,7 @@ public function findByFolder(int $folderId): array {
return 'sf.' . $c;
}, SharedFolder::$columns))
->from('bookmarks_shared_folders', 'sf')
->where($qb->expr()->eq('sf.folder_id', $qb->createPositionalParameter($folderId)));
->where($qb->expr()->eq('sf.folder_id', $qb->createPositionalParameter($folderId, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
}

Expand Down Expand Up @@ -122,7 +123,7 @@ public function findByParticipant(int $type, string $participant): array {
->leftJoin('p', 'bookmarks_shared_to_shares', 't', 'p.id = t.shared_folder_id')
->leftJoin('t', 'bookmarks_shares', 's', 't.share_id = s.id')
->where($qb->expr()->eq('s.participant', $qb->createPositionalParameter($participant)))
->andWhere($qb->expr()->eq('s.type', $qb->createPositionalParameter($type)));
->andWhere($qb->expr()->eq('s.type', $qb->createPositionalParameter($type, IQueryBuilder::PARAM_INT)));
return $this->findEntities($qb);
}

Expand All @@ -142,7 +143,7 @@ public function findByFolderAndParticipant(int $folderId, int $type, string $par
->from('bookmarks_shared_folders', 'p')
->leftJoin('p', 'bookmarks_shared_to_shares', 't', 't.shared_folder_id = p.id')
->leftJoin('t', 'bookmarks_shares', 's', 't.share_id = s.id')
->where($qb->expr()->eq('p.folder_id', $qb->createPositionalParameter($folderId)))
->where($qb->expr()->eq('p.folder_id', $qb->createPositionalParameter($folderId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('participant', $qb->createPositionalParameter($participant)))
->andWhere($qb->expr()->eq('type', $qb->createPositionalParameter($type)));
return $this->findEntity($qb);
Expand All @@ -161,7 +162,7 @@ public function findByFolderAndUser(int $folderId, string $userId): SharedFolder
return 'p.' . $c;
}, SharedFolder::$columns))
->from('bookmarks_shared_folders', 'p')
->where($qb->expr()->eq('p.folder_id', $qb->createPositionalParameter($folderId)))
->where($qb->expr()->eq('p.folder_id', $qb->createPositionalParameter($folderId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('p.user_id', $qb->createPositionalParameter($userId)));
return $this->findEntity($qb);
}
Expand Down Expand Up @@ -199,7 +200,7 @@ public function findByShareAndUser(int $shareId, string $userId): SharedFolder {
}, SharedFolder::$columns))
->from('bookmarks_shared_folders', 'p')
->leftJoin('p', 'bookmarks_shared_to_shares', 't', 't.shared_folder_id = p.id')
->where($qb->expr()->eq('t.share_id', $qb->createPositionalParameter($shareId)))
->where($qb->expr()->eq('t.share_id', $qb->createPositionalParameter($shareId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('p.user_id', $qb->createPositionalParameter($userId)));
return $this->findEntity($qb);
}
Expand All @@ -218,15 +219,15 @@ public function findByParticipantAndUser(int $type, string $participant, string
->leftJoin('p', 'bookmarks_shared_to_shares', 't', 't.shared_folder_id = p.id')
->leftJoin('t', 'bookmarks_shares', 's', 't.share_id = s.id')
->where($qb->expr()->eq('s.participant', $qb->createPositionalParameter($participant)))
->andWhere($qb->expr()->eq('s.type', $qb->createPositionalParameter($type)))
->andWhere($qb->expr()->eq('s.type', $qb->createPositionalParameter($type, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('p.user_id', $qb->createPositionalParameter($userId)));
return $this->findEntities($qb);
}

public function delete(Entity $entity): SharedFolder {
$qb = $this->db->getQueryBuilder();
$qb->delete('bookmarks_shared_to_shares')
->where($qb->expr()->eq('shared_folder_id', $qb->createPositionalParameter($entity->getId())))
->where($qb->expr()->eq('shared_folder_id', $qb->createPositionalParameter($entity->getId(), IQueryBuilder::PARAM_INT)))
->execute();
return parent::delete($entity);
}
Expand All @@ -235,7 +236,7 @@ public function mount(int $id, int $share_id): void {
$qb = $this->db->getQueryBuilder();
$qb->insert('bookmarks_shared_to_shares')->values([
'shared_folder_id' => $qb->createPositionalParameter($id),
'share_id' => $qb->createPositionalParameter($share_id)
'share_id' => $qb->createPositionalParameter($share_id, IQueryBuilder::PARAM_INT)
])->execute();
$this->eventDispatcher->dispatch(CreateEvent::class, new CreateEvent(
TreeMapper::TYPE_SHARE,
Expand Down
3 changes: 2 additions & 1 deletion lib/Db/TagMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

namespace OCA\Bookmarks\Db;

use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use PDO;

Expand Down Expand Up @@ -86,7 +87,7 @@ public function findByBookmark(int $bookmarkId): array {

$qb
->from('bookmarks_tags', 't')
->where($qb->expr()->eq('t.bookmark_id', $qb->createPositionalParameter($bookmarkId)));
->where($qb->expr()->eq('t.bookmark_id', $qb->createPositionalParameter($bookmarkId, IQueryBuilder::PARAM_INT)));

return $qb->execute()->fetchAll(PDO::FETCH_COLUMN);
}
Expand Down
10 changes: 8 additions & 2 deletions lib/Db/TreeMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -644,7 +644,7 @@ public function move(string $type, int $itemId, int $newParentFolderId, ?int $in
$qb
->update('bookmarks_tree')
->set('parent_folder', $qb->createPositionalParameter($newParentFolderId, IQueryBuilder::PARAM_INT))
->set('index', $qb->createPositionalParameter($index ?? $this->countChildren($newParentFolderId)))
->set('index', $qb->createPositionalParameter($index ?? $this->countChildren($newParentFolderId), IQueryBuilder::PARAM_INT))
->where($qb->expr()->eq('id', $qb->createPositionalParameter($itemId, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->eq('type', $qb->createPositionalParameter($type)));
$qb->execute();
Expand Down Expand Up @@ -919,7 +919,12 @@ public function getSubFolders(int $folderId, $layers = 0, ?bool $isSoftDeleted =
return $array;
}, $this->findChildren(TreeMapper::TYPE_FOLDER, $folderId, $isSoftDeleted));
$shares = array_map(function (SharedFolder $sharedFolder) use ($layers, $folderId, $isSoftDeleted) {
$share = $this->shareMapper->findBySharedFolder($sharedFolder->getId());
try {
$share = $this->shareMapper->findBySharedFolder($sharedFolder->getId());
} catch (DoesNotExistException|MultipleObjectsReturnedException|Exception $e) {
$this->logger->error('Failed to load a shared folder', ['exception' => $e]);
return null;
}
$array = $sharedFolder->toArray();
$array['id'] = $share->getFolderId();
$array['userId'] = $share->getOwner();
Expand All @@ -930,6 +935,7 @@ public function getSubFolders(int $folderId, $layers = 0, ?bool $isSoftDeleted =
}
return $array;
}, $this->findChildren(TreeMapper::TYPE_SHARE, $folderId, $isSoftDeleted));
$shares = array_values(array_filter($shares, fn ($data) => $data !== null));
if (count($shares) > 0) {
array_push($folders, ...$shares);
}
Expand Down
5 changes: 3 additions & 2 deletions lib/Migration/OrphanedSharesRepairStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

namespace OCA\Bookmarks\Migration;

use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep;
Expand Down Expand Up @@ -50,14 +51,14 @@ public function run(IOutput $output) {
$folders = $qb->select('f.id')
->from('bookmarks_shared_folders', 'f')
->join('f', 'bookmarks_shared_to_shares', 't', $qb->expr()->eq('f.id', 't.shared_folder_id'))
->where($qb->expr()->eq('t.share_id', $qb->createPositionalParameter($share)))
->where($qb->expr()->eq('t.share_id', $qb->createPositionalParameter($share, IQueryBuilder::PARAM_INT)))
->execute()
->fetchAll(PDO::FETCH_COLUMN);
foreach ($folders as $folderId) {
$qb = $this->db->getQueryBuilder();
$qb->delete('bookmarks_tree')
->where($qb->expr()->eq('type', $qb->createPositionalParameter('share')))
->andWhere($qb->expr()->eq('id', $qb->createPositionalParameter($folderId)))
->andWhere($qb->expr()->eq('id', $qb->createPositionalParameter($folderId, IQueryBuilder::PARAM_INT)))
->execute();
}
$this->db->executeQuery('DELETE sf FROM *PREFIX*bookmarks_shared_folders sf JOIN *PREFIX*bookmarks_shared_to_shares t ON sf.id = t.shared_folder_id WHERE t.share_id = ?', [$share]);
Expand Down
7 changes: 4 additions & 3 deletions lib/Migration/Version000014000Date20181029094721.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

use Closure;
use OCP\DB\ISchemaWrapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
Expand Down Expand Up @@ -77,15 +78,15 @@ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array
$qb
->select('id', 'title', 'parent_folder')
->from('bookmarks_folders')
->where($qb->expr()->eq('parent_folder', $qb->createPositionalParameter($folder)))
->where($qb->expr()->eq('parent_folder', $qb->createPositionalParameter($folder, IQueryBuilder::PARAM_INT)))
->orderBy('title', 'DESC');
$childFolders = $qb->execute()->fetchAll();

$qb = $this->db->getQueryBuilder();
$qb
->select('bookmark_id')
->from('bookmarks_folders_bookmarks')
->where($qb->expr()->eq('folder_id', $qb->createPositionalParameter($folder)));
->where($qb->expr()->eq('folder_id', $qb->createPositionalParameter($folder, IQueryBuilder::PARAM_INT)));
$childBookmarks = $qb->execute()->fetchAll();

$children = array_merge($childFolders, $childBookmarks);
Expand All @@ -103,7 +104,7 @@ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array
$qb = $this->db->getQueryBuilder();
$qb
->update('bookmarks_folders_bookmarks')
->set('index', $qb->createPositionalParameter($i))
->set('index', $qb->createPositionalParameter($i, IQueryBuilder::PARAM_INT))
->where($qb->expr()->eq('bookmark_id', $qb->createPositionalParameter($child['id'])))
->andWhere($qb->expr()->eq('folder_id', $qb->createPositionalParameter($folder)));
$qb->execute();
Expand Down
Loading
Loading