perf: Avoid fetching labels and owner details on permission check
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
@@ -113,7 +113,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
return parent::update($cardUpdate);
|
||||
}
|
||||
|
||||
public function find($id): Card {
|
||||
public function find($id, bool $enhance = true): Card {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('*')
|
||||
->from('deck_cards')
|
||||
@@ -122,9 +122,11 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
->addOrderBy('id');
|
||||
/** @var Card $card */
|
||||
$card = $this->findEntity($qb);
|
||||
$labels = $this->labelMapper->findAssignedLabelsForCard($card->getId());
|
||||
$card->setLabels($labels);
|
||||
$this->mapOwner($card);
|
||||
if ($enhance) {
|
||||
$labels = $this->labelMapper->findAssignedLabelsForCard($card->getId());
|
||||
$card->setLabels($labels);
|
||||
$this->mapOwner($card);
|
||||
}
|
||||
return $card;
|
||||
}
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ class PermissionService {
|
||||
if ($permissions[$permission] === true) {
|
||||
|
||||
if (!$allowDeletedCard && $mapper instanceof CardMapper) {
|
||||
$card = $mapper->find((int)$id);
|
||||
$card = $mapper->find((int)$id, false);
|
||||
if ($card->getDeletedAt() > 0) {
|
||||
throw new NoPermissionException('Card is deleted');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user