Skip to content

Commit a7f306a

Browse files
Merge pull request #7857 from nextcloud/fix/noid/switch-to-probecircles
fix(teams): use lighter probeCircles()
2 parents 9a89470 + 298f567 commit a7f306a

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

lib/Service/CirclesService.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use OCA\Circles\Model\Circle;
1515
use OCA\Circles\Model\Member;
1616
use OCA\Circles\Model\Probes\CircleProbe;
17+
use OCA\Circles\Model\Probes\DataProbe;
1718
use OCP\App\IAppManager;
1819
use OCP\Server;
1920
use Throwable;
@@ -45,7 +46,9 @@ public function getCircle(string $circleId): ?Circle {
4546
// Enforce current user condition since we always want the full list of members
4647
$circlesManager = Server::get(CirclesManager::class);
4748
$circlesManager->startSuperSession();
48-
return $circlesManager->getCircle($circleId);
49+
$dataProbe = new DataProbe();
50+
$dataProbe->add(DataProbe::OWNER);
51+
return $circlesManager->probeCircle($circleId, null, $dataProbe);
4952
} catch (Throwable $e) {
5053
}
5154
return null;
@@ -64,7 +67,9 @@ public function isUserInCircle(string $circleId, string $userId): bool {
6467
$circlesManager = Server::get(CirclesManager::class);
6568
$federatedUser = $circlesManager->getFederatedUser($userId, Member::TYPE_USER);
6669
$circlesManager->startSession($federatedUser);
67-
$circle = $circlesManager->getCircle($circleId);
70+
$dataProbe = new DataProbe();
71+
$dataProbe->add(DataProbe::INITIATOR);
72+
$circle = $circlesManager->probeCircle($circleId, null, $dataProbe);
6873
$member = $circle->getInitiator();
6974
$isUserInCircle = $member->getLevel() >= Member::LEVEL_MEMBER;
7075

@@ -96,7 +101,7 @@ public function getUserCircles(string $userId): array {
96101
$probe->mustBeMember();
97102
return array_map(function (Circle $circle) {
98103
return $circle->getSingleId();
99-
}, $circlesManager->getCircles($probe));
104+
}, $circlesManager->probeCircles($probe));
100105
} catch (Throwable $e) {
101106
}
102107
return [];

tests/stub.phpstub

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,27 @@ namespace OCA\Circles\Model\Probes {
9999
public function __construct() {}
100100
public function mustBeMember(bool $must = true): self {}
101101
}
102+
class DataProbe {
103+
public const OWNER = 'd';
104+
public const INITIATOR = 'h';
105+
public function __construct() {}
106+
public function add(string $key, array $path = []): self {}
107+
public function mustBeMember(bool $must = true): self {}
108+
}
102109
}
103110

104111
namespace OCA\Circles {
105112
use OCA\Circles\Model\Circle;
106113
use OCA\Circles\Model\FederatedUser;
107114
use OCA\Circles\Model\Probes\CircleProbe;
115+
use OCA\Circles\Model\Probes\DataProbe;
108116
class CirclesManager {
109117
public function startSuperSession(): void {}
110118
public function startSession(?FederatedUser $federatedUser = null): void {}
111119
public function getCircles(?CircleProbe $probe = null): array {}
112120
public function getCircle(string $singleId, ?CircleProbe $probe = null): Circle {}
121+
public function probeCircles(?CircleProbe $circleProbe = null, ?DataProbe $dataProbe = null): array {}
122+
public function probeCircle(string $singleId, ?CircleProbe $probe = null, ?DataProbe $dataProbe = null): Circle {}
113123
public function getFederatedUser(string $federatedId, int $type = Member::TYPE_SINGLE): FederatedUser {}
114124
}
115125
}

0 commit comments

Comments
 (0)