feat: initial commit
This commit is contained in:
parent
dc626ea336
commit
8690c57a7c
|
@ -1 +1 @@
|
||||||
Subproject commit 8d6b58467fe13635ba75bb62f2d94280f8b7ceb8
|
Subproject commit c643c77f30d63db1c704d2c114e59d5c886db4dd
|
|
@ -674,7 +674,7 @@ App::post('/v1/account/sessions/magic-url')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$userId = $userId == 'unique()' ? ID::unique() : $userId;
|
$userId = $userId === 'unique()' ? ID::unique() : $userId;
|
||||||
|
|
||||||
$user = Authorization::skip(fn () => $dbForProject->createDocument('users', new Document([
|
$user = Authorization::skip(fn () => $dbForProject->createDocument('users', new Document([
|
||||||
'$id' => $userId,
|
'$id' => $userId,
|
||||||
|
|
|
@ -607,7 +607,7 @@ App::patch('/v1/projects/:projectId/auth/password-history')
|
||||||
});
|
});
|
||||||
|
|
||||||
App::patch('/v1/projects/:projectId/auth/password-dictionary')
|
App::patch('/v1/projects/:projectId/auth/password-dictionary')
|
||||||
->desc('Update authentication password disctionary status. Use this endpoint to enable or disable the dicitonary check for user password')
|
->desc('Update authentication password dictionary status. Use this endpoint to enable or disable the dicitonary check for user password')
|
||||||
->groups(['api', 'projects'])
|
->groups(['api', 'projects'])
|
||||||
->label('scope', 'projects.write')
|
->label('scope', 'projects.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
|
@ -637,6 +637,37 @@ App::patch('/v1/projects/:projectId/auth/password-dictionary')
|
||||||
$response->dynamic($project, Response::MODEL_PROJECT);
|
$response->dynamic($project, Response::MODEL_PROJECT);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
App::patch('/v1/projects/:projectId/auth/disallow-personal-data')
|
||||||
|
->desc('Enable or disable checking the user password against their personal data.')
|
||||||
|
->groups(['api', 'projects'])
|
||||||
|
->label('scope', 'projects.write')
|
||||||
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
|
->label('sdk.namespace', 'projects')
|
||||||
|
->label('sdk.method', 'updateDisallowPersonalData')
|
||||||
|
->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('enabled', false, new Boolean(false), 'Set whether or not to check Default is false.')
|
||||||
|
->inject('response')
|
||||||
|
->inject('dbForConsole')
|
||||||
|
->action(function (string $projectId, bool $enabled, Response $response, Database $dbForConsole) {
|
||||||
|
|
||||||
|
$project = $dbForConsole->getDocument('projects', $projectId);
|
||||||
|
|
||||||
|
if ($project->isEmpty()) {
|
||||||
|
throw new Exception(Exception::PROJECT_NOT_FOUND);
|
||||||
|
}
|
||||||
|
|
||||||
|
$auths = $project->getAttribute('auths', []);
|
||||||
|
$auths['disallowPersonalData'] = $enabled;
|
||||||
|
|
||||||
|
$dbForConsole->updateDocument('projects', $project->getId(), $project
|
||||||
|
->setAttribute('auths', $auths));
|
||||||
|
|
||||||
|
$response->dynamic($project, Response::MODEL_PROJECT);
|
||||||
|
});
|
||||||
|
|
||||||
App::patch('/v1/projects/:projectId/auth/max-sessions')
|
App::patch('/v1/projects/:projectId/auth/max-sessions')
|
||||||
->desc('Update Project user sessions limit')
|
->desc('Update Project user sessions limit')
|
||||||
->groups(['api', 'projects'])
|
->groups(['api', 'projects'])
|
||||||
|
|
|
@ -132,6 +132,12 @@ class Project extends Model
|
||||||
'default' => false,
|
'default' => false,
|
||||||
'example' => true,
|
'example' => true,
|
||||||
])
|
])
|
||||||
|
->addRule('authDisallowPersonalData', [
|
||||||
|
'type' => self::TYPE_BOOLEAN,
|
||||||
|
'description' => 'Whether or not to check the user password for similarity with their personal data.',
|
||||||
|
'default' => false,
|
||||||
|
'example' => true,
|
||||||
|
])
|
||||||
->addRule('providers', [
|
->addRule('providers', [
|
||||||
'type' => Response::MODEL_PROVIDER,
|
'type' => Response::MODEL_PROVIDER,
|
||||||
'description' => 'List of Providers.',
|
'description' => 'List of Providers.',
|
||||||
|
@ -254,6 +260,7 @@ class Project extends Model
|
||||||
$document->setAttribute('authSessionsLimit', $authValues['maxSessions'] ?? APP_LIMIT_USER_SESSIONS_DEFAULT);
|
$document->setAttribute('authSessionsLimit', $authValues['maxSessions'] ?? APP_LIMIT_USER_SESSIONS_DEFAULT);
|
||||||
$document->setAttribute('authPasswordHistory', $authValues['passwordHistory'] ?? 0);
|
$document->setAttribute('authPasswordHistory', $authValues['passwordHistory'] ?? 0);
|
||||||
$document->setAttribute('authPasswordDictionary', $authValues['passwordDictionary'] ?? false);
|
$document->setAttribute('authPasswordDictionary', $authValues['passwordDictionary'] ?? false);
|
||||||
|
$document->setAttribute('authDisallowPersonalData', $authValues['disallowPersonalData'] ?? false);
|
||||||
|
|
||||||
foreach ($auth as $index => $method) {
|
foreach ($auth as $index => $method) {
|
||||||
$key = $method['key'];
|
$key = $method['key'];
|
||||||
|
|
Loading…
Reference in a new issue