diff --git a/lib/Db/CircleRequest.php b/lib/Db/CircleRequest.php index 5ca38fc16..80d4494d2 100644 --- a/lib/Db/CircleRequest.php +++ b/lib/Db/CircleRequest.php @@ -300,7 +300,7 @@ public function getFederatedUserBySingleId(string $singleId): FederatedUser { * @throws RequestBuilderException */ public function getSingleCircle(IFederatedUser $initiator): Circle { - $qb = $this->getCircleSelectSql(CoreQueryBuilder::SINGLE); + $qb = $this->getCircleSelectSql(CoreQueryBuilder::SINGLE, true); if ($initiator instanceof FederatedUser) { $member = new Member(); @@ -311,7 +311,7 @@ public function getSingleCircle(IFederatedUser $initiator): Circle { } $qb->limitToDirectMembership(CoreQueryBuilder::SINGLE, $member); - $qb->limitToConfigFlag(Circle::CFG_SINGLE); + $qb->limitInt('config', Circle::CFG_SINGLE); try { return $this->getItemFromRequest($qb); diff --git a/lib/Db/CircleRequestBuilder.php b/lib/Db/CircleRequestBuilder.php index d0cb5f588..1f707a21a 100644 --- a/lib/Db/CircleRequestBuilder.php +++ b/lib/Db/CircleRequestBuilder.php @@ -68,14 +68,21 @@ protected function getCircleUpdateSql(): CoreQueryBuilder { /** * @param string $alias + * @param bool $single * * @return CoreQueryBuilder */ - protected function getCircleSelectSql(string $alias = CoreQueryBuilder::CIRCLE): CoreQueryBuilder { + protected function getCircleSelectSql( + string $alias = CoreQueryBuilder::CIRCLE, + bool $single = false + ): CoreQueryBuilder { $qb = $this->getQueryBuilder(); - $qb->generateSelect(self::TABLE_CIRCLE, self::$tables[self::TABLE_CIRCLE], $alias, true) - ->generateGroupBy(self::$tables[self::TABLE_CIRCLE], $alias) - ->orderBy($alias . '.creation', 'asc'); + $qb->generateSelect(self::TABLE_CIRCLE, self::$tables[self::TABLE_CIRCLE], $alias, !$single) + ->generateGroupBy(self::$tables[self::TABLE_CIRCLE], $alias); + + if (!$single) { + $qb->orderBy($alias . '.creation', 'asc'); + } return $qb; } diff --git a/lib/Db/CoreQueryBuilder.php b/lib/Db/CoreQueryBuilder.php index a87815fc2..06f1085f3 100644 --- a/lib/Db/CoreQueryBuilder.php +++ b/lib/Db/CoreQueryBuilder.php @@ -639,7 +639,7 @@ public function limitToDirectMembership(string $alias, Member $member): void { if ($getData) { $this->generateMemberSelectAlias($aliasMember); } - $this->leftJoin( + $this->innerJoin( $this->getDefaultSelectAlias(), CoreRequestBuilder::TABLE_MEMBER, $aliasMember, $expr->eq($aliasMember . '.circle_id', $alias . '.unique_id') );