diff --git a/lib/Db/CoreQueryBuilder.php b/lib/Db/CoreQueryBuilder.php index 0b3ac9314..62e1d4c5d 100644 --- a/lib/Db/CoreQueryBuilder.php +++ b/lib/Db/CoreQueryBuilder.php @@ -798,9 +798,6 @@ public function leftJoinBasedOn( if (!is_null($initiator)) { $this->leftJoinInitiator($aliasBasedOn, $initiator); $this->leftJoinOwner($aliasBasedOn); - - $aliasInitiatorMemberships = $this->generateAlias($aliasBasedOn, self::MEMBERSHIPS); - $this->andWhere($expr->gt($aliasInitiatorMemberships . '.level', $this->createNamedParameter(0, self::PARAM_INT))); } } diff --git a/lib/Db/MemberRequest.php b/lib/Db/MemberRequest.php index 71f6f8872..78ab9fb92 100644 --- a/lib/Db/MemberRequest.php +++ b/lib/Db/MemberRequest.php @@ -222,6 +222,16 @@ public function getMembers( if ($fullDetails) { $qb->leftJoinCircle(CoreQueryBuilder::MEMBER, $initiator); $qb->leftJoinInvitedBy(CoreQueryBuilder::MEMBER); + } elseif (!is_null($initiator)) { + // still need to confirm initiator level in relation to the circle + $aliasCircle = $qb->generateAlias(CoreQueryBuilder::MEMBER, CoreQueryBuilder::CIRCLE, $options); + $qb->leftJoin( + CoreQueryBuilder::MEMBER, + CoreRequestBuilder::TABLE_CIRCLE, + $aliasCircle, + $qb->expr()->eq($aliasCircle . '.unique_id', CoreQueryBuilder::MEMBER . '.circle_id') + ); + $qb->limitToInitiator($aliasCircle, $initiator); } if ($probe->hasFilterRemoteInstance()) {