perf: Combine fetching acls for boards

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2023-02-15 13:12:39 +01:00
parent 81c0d96357
commit ba3cab1036
2 changed files with 26 additions and 15 deletions

View File

@@ -160,6 +160,20 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
$groupBoards = $this->findAllByGroups($userId, $groups, null, null, $since, $includeArchived, $before, $term);
$circleBoards = $this->findAllByCircles($userId, null, null, $since, $includeArchived, $before, $term);
$allBoards = array_unique(array_merge($userBoards, $groupBoards, $circleBoards));
// Could be moved outside
$acls = $this->aclMapper->findIn(array_map(function ($board) {
return $board->getId();
}, $allBoards));
/* @var Board $entry */
foreach ($allBoards as $entry) {
$boardAcls = array_filter($acls, function ($acl) use ($entry) {
return $acl->getBoardId() === $entry->getId();
});
$entry->setAcl($boardAcls);
}
foreach ($allBoards as $board) {
$this->boardCache[$board->getId()] = $board;
}
@@ -259,11 +273,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
$entry->setShared(1);
}
$entries = array_merge($entries, $sharedEntries);
/* @var Board $entry */
foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id);
$entry->setAcl($acl);
}
return $entries;
}
@@ -336,11 +346,6 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
foreach ($entries as $entry) {
$entry->setShared(2);
}
/* @var Board $entry */
foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id);
$entry->setAcl($acl);
}
return $entries;
}
@@ -397,11 +402,6 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
foreach ($entries as $entry) {
$entry->setShared(2);
}
/* @var Board $entry */
foreach ($entries as $entry) {
$acl = $this->aclMapper->findAll($entry->id);
$entry->setAcl($acl);
}
return $entries;
}