From 9d1f366161d581a844dfca98f57e4bf29aae9846 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Tue, 5 Nov 2024 17:59:14 +0100 Subject: [PATCH] fix: console --- app/controllers/api/teams.php | 14 ++++++++++---- tests/e2e/Services/Teams/TeamsBaseClient.php | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 8320f3de9f..a9e5117a02 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -728,15 +728,23 @@ App::get('/v1/teams/:teamId/memberships') ->param('search', '', new Text(256), 'Search term to filter your list results. Max length: 256 chars.', true) ->inject('response') ->inject('project') + ->inject('dbForConsole') ->inject('dbForProject') - ->action(function (string $teamId, array $queries, string $search, Response $response, Document $project, Database $dbForProject) { - + ->action(function (string $teamId, array $queries, string $search, Response $response, Document $project, Database $dbForConsole, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); if ($team->isEmpty()) { throw new Exception(Exception::TEAM_NOT_FOUND); } + $project = $dbForConsole->getDocument('projects', $project->getId()); + + if ($project->isEmpty()) { + throw new Exception(Exception::PROJECT_NOT_FOUND); + } + + $sensitiveAttributes = $project->getAttribute('auths', [])['teamsSensitiveAttributes'] ?? true; + try { $queries = Query::parseQueries($queries); } catch (QueryException $e) { @@ -791,8 +799,6 @@ App::get('/v1/teams/:teamId/memberships') $memberships = array_filter($memberships, fn (Document $membership) => !empty($membership->getAttribute('userId'))); - $sensitiveAttributes = $project->getAttribute('auths', [])['teamsSensitiveAttributes'] ?? true; - $memberships = array_map(function ($membership) use ($dbForProject, $team, $sensitiveAttributes) { $user = $dbForProject->getDocument('users', $membership->getAttribute('userId')); $membership->setAttribute('teamName', $team->getAttribute('name')); diff --git a/tests/e2e/Services/Teams/TeamsBaseClient.php b/tests/e2e/Services/Teams/TeamsBaseClient.php index 750b55b798..ab29de8c26 100644 --- a/tests/e2e/Services/Teams/TeamsBaseClient.php +++ b/tests/e2e/Services/Teams/TeamsBaseClient.php @@ -140,7 +140,7 @@ trait TeamsBaseClient 'x-appwrite-project' => 'console', 'x-appwrite-key' => $this->getProject()['apiKey'], ]), [ - 'enabled' => 'false', + 'enabled' => false, ]); /** @@ -156,7 +156,7 @@ trait TeamsBaseClient $this->assertNotEmpty($response['body']['memberships'][0]['$id']); // Assert that sensitive fields are not present - $this->assertArrayNotHasKey('userName', $response['body']['memberships'][0]); + $this->assertArrayNotHasKey('userName', $response['body']['memberships'][0], 'userName was present: ' . $response['body']['memberships'][0]['userName']); $this->assertArrayNotHasKey('userEmail', $response['body']['memberships'][0]); $this->assertArrayNotHasKey('mfa', $response['body']['memberships'][0]);