diff --git a/lib/private/Teams/TeamManager.php b/lib/private/Teams/TeamManager.php index 88821152d66..38f3e26abee 100644 --- a/lib/private/Teams/TeamManager.php +++ b/lib/private/Teams/TeamManager.php @@ -12,6 +12,7 @@ use OCA\Circles\CirclesManager; use OCA\Circles\Exceptions\CircleNotFoundException; use OCA\Circles\Model\Circle; use OCA\Circles\Model\Member; +use OCA\Circles\Model\Probes\CircleProbe; use OCP\IURLGenerator; use OCP\Server; use OCP\Teams\ITeamManager; @@ -71,7 +72,10 @@ class TeamManager implements ITeamManager { return []; } - if ($this->getTeam($teamId, $userId) === null) { + $probe = new CircleProbe(); + $probe->mustBeMember(); + + if ($this->getTeam($teamId, $userId, $probe) === null) { return []; } @@ -118,7 +122,7 @@ class TeamManager implements ITeamManager { }, $this->getTeams($provider->getTeamsForResource($resourceId), $userId)); } - private function getTeam(string $teamId, string $userId): ?Circle { + private function getTeam(string $teamId, string $userId, ?CircleProbe $probe = null): ?Circle { if (!$this->hasTeamSupport()) { return null; } @@ -126,7 +130,7 @@ class TeamManager implements ITeamManager { try { $federatedUser = $this->circlesManager->getFederatedUser($userId, Member::TYPE_USER); $this->circlesManager->startSession($federatedUser); - return $this->circlesManager->getCircle($teamId); + return $this->circlesManager->getCircle($teamId, $probe); } catch (CircleNotFoundException) { return null; } diff --git a/psalm.xml b/psalm.xml index b5e6fd45d1b..21e690d655a 100644 --- a/psalm.xml +++ b/psalm.xml @@ -104,6 +104,7 @@ +