chore: refactor

This commit is contained in:
loks0n
2024-11-05 17:05:21 +01:00
parent 4c14375d89
commit 69e8fdf077
4 changed files with 20 additions and 18 deletions
+10 -7
View File
@@ -111,7 +111,9 @@ App::post('/v1/projects')
'personalDataCheck' => false,
'mockNumbers' => [],
'sessionAlerts' => false,
'teamsShowSensitiveFields' => true,
'teamsShowMfa' => true,
'teamsShowName' => true,
'teamsShowEmail' => true,
];
foreach ($auth as $method) {
@@ -649,21 +651,21 @@ App::patch('/v1/projects/:projectId/auth/session-alerts')
$response->dynamic($project, Response::MODEL_PROJECT);
});
App::patch('/v1/projects/:projectId/auth/teams-hide-sensitive-fields')
->desc('Update project team show sensitive fields')
App::patch('/v1/projects/:projectId/auth/teams-sensitive-attributes')
->desc('Update project team sensitive attributes')
->groups(['api', 'projects'])
->label('scope', 'projects.write')
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
->label('sdk.namespace', 'projects')
->label('sdk.method', 'updateTeamsShowSensitiveFields')
->label('sdk.method', 'updateTeamsSensitiveAttributes')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_PROJECT)
->param('projectId', '', new UID(), 'Project unique ID.')
->param('teamsShowSensitiveFields', true, new Boolean(true), 'Set to true to hide sensitive fields from team members.')
->param('enabled', true, new Boolean(true), 'Set to true to show sensitive attributes to team members.')
->inject('response')
->inject('dbForConsole')
->action(function (string $projectId, bool $teamsShowSensitiveFields, Response $response, Database $dbForConsole) {
->action(function (string $projectId, bool $enabled, Response $response, Database $dbForConsole) {
$project = $dbForConsole->getDocument('projects', $projectId);
@@ -672,7 +674,8 @@ App::patch('/v1/projects/:projectId/auth/teams-hide-sensitive-fields')
}
$auths = $project->getAttribute('auths', []);
$auths['teamsShowSensitiveFields'] = $teamsShowSensitiveFields;
$auths['teamsSensitiveAttributes'] = $enabled;
$dbForConsole->updateDocument('projects', $project->getId(), $project
->setAttribute('auths', $auths));
+3 -3
View File
@@ -791,13 +791,13 @@ App::get('/v1/teams/:teamId/memberships')
$memberships = array_filter($memberships, fn (Document $membership) => !empty($membership->getAttribute('userId')));
$showSensitiveFields = $project->getAttribute('auths', [])['teamsShowSensitiveFields'] ?? true;
$sensitiveAttributes = $project->getAttribute('auths', [])['teamsSensitiveAttributes'] ?? true;
$memberships = array_map(function ($membership) use ($dbForProject, $team, $showSensitiveFields) {
$memberships = array_map(function ($membership) use ($dbForProject, $team, $sensitiveAttributes) {
$user = $dbForProject->getDocument('users', $membership->getAttribute('userId'));
$membership->setAttribute('teamName', $team->getAttribute('name'));
if ($showSensitiveFields) {
if ($sensitiveAttributes) {
$mfa = $user->getAttribute('mfa', false);
if ($mfa) {
$totp = TOTP::getAuthenticatorFromUser($user);
@@ -151,9 +151,9 @@ class Project extends Model
'default' => false,
'example' => true,
])
->addRule('teamsShowSensitiveFields', [
->addRule('teamsSensitiveAttributes', [
'type' => self::TYPE_BOOLEAN,
'description' => 'Whether or not to hide sensitive data in the teams API.',
'description' => 'Whether or not to show sensitive attributes in the teams API.',
'default' => false,
'example' => true,
])
+5 -6
View File
@@ -134,16 +134,15 @@ trait TeamsBaseClient
* Update project settings to hide sensitive fields
*/
$projectId = $this->getProject()['$id'];
$response = $this->client->call(Client::METHOD_PATCH, '/projects/' . $projectId . '/auth/teams-hide-sensitive-fields', array_merge([
$response = $this->client->call(Client::METHOD_PATCH, '/projects/' . $projectId . '/auth/teams-sensitive-attributes', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => 'console',
'x-appwrite-key' => $this->getRoot()['secret'],
]), [
'teamsShowSensitiveFields' => false,
'enabled' => false,
]);
$this->assertEquals(200, $response['headers']['status-code']);
/**
* Test that sensitive fields are hidden
*/
@@ -164,12 +163,12 @@ trait TeamsBaseClient
/**
* Update project settings to show sensitive fields
*/
$response = $this->client->call(Client::METHOD_PATCH, '/projects/' . $projectId . '/auth/teams-hide-sensitive-fields', array_merge([
$response = $this->client->call(Client::METHOD_PATCH, '/projects/' . $projectId . '/auth/teams-sensitive-attributes', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => 'console',
'x-appwrite-key' => $this->getRoot()['secret'],
]), [
'teamsShowSensitiveFields' => true,
'enabled' => true,
]);
$this->assertEquals(200, $response['headers']['status-code']);