Skip to content

Commit 74849c9

Browse files
fix(team-manager): ensure team resources are only retrived for members
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
1 parent 45a4c10 commit 74849c9

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

lib/private/Teams/TeamManager.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use OCA\Circles\Exceptions\CircleNotFoundException;
1313
use OCA\Circles\Model\Circle;
1414
use OCA\Circles\Model\Member;
15+
use OCA\Circles\Model\Probes\CircleProbe;
1516
use OCP\IURLGenerator;
1617
use OCP\Server;
1718
use OCP\Teams\ITeamManager;
@@ -75,7 +76,10 @@ public function getSharedWith(string $teamId, string $userId): array {
7576
return [];
7677
}
7778

78-
if ($this->getTeam($teamId, $userId) === null) {
79+
$probe = new CircleProbe();
80+
$probe->mustBeMember();
81+
82+
if ($this->getTeam($teamId, $userId, $probe) === null) {
7983
return [];
8084
}
8185

@@ -124,15 +128,15 @@ public function getTeamsForResource(string $providerId, string $resourceId, stri
124128
}, $this->getTeams($provider->getTeamsForResource($resourceId), $userId));
125129
}
126130

127-
private function getTeam(string $teamId, string $userId): ?Circle {
131+
private function getTeam(string $teamId, string $userId, ?CircleProbe $probe = null): ?Circle {
128132
if (!$this->hasTeamSupport()) {
129133
return null;
130134
}
131135

132136
try {
133137
$federatedUser = $this->circlesManager->getFederatedUser($userId, Member::TYPE_USER);
134138
$this->circlesManager->startSession($federatedUser);
135-
return $this->circlesManager->getCircle($teamId);
139+
return $this->circlesManager->getCircle($teamId, $probe);
136140
} catch (CircleNotFoundException) {
137141
return null;
138142
}

psalm.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@
147147
<referencedClass name="OCA\Circles\Exceptions\CircleNotFoundException"/>
148148
<referencedClass name="OCA\Circles\Model\Circle"/>
149149
<referencedClass name="OCA\Circles\Model\Member"/>
150+
<referencedClass name="OCA\Circles\Model\Probes\CircleProbe"/>
150151
<referencedClass name="OCA\ContextChat\Public\ContentManager"/>
151152
<referencedClass name="OCA\GroupFolders\Mount\GroupFolderStorage"/>
152153
<referencedClass name="OCA\TwoFactorNextcloudNotification\Controller\APIController"/>

0 commit comments

Comments
 (0)