1
0
Fork 0
mirror of synced 2024-06-02 19:04:49 +12:00
This commit is contained in:
shimon 2022-08-12 16:21:32 +03:00
parent 90cfac9b52
commit 1af95fcdaa
5 changed files with 17 additions and 49 deletions

View file

@ -135,6 +135,8 @@ App::post('/v1/account/sessions/email')
->label('event', 'users.[userId].sessions.[sessionId].create')
->label('scope', 'public')
->label('auth.type', 'emailPassword')
->label('audits.resource', 'user/{response.userId}')
->label('audits.userId', '{response.userId}')
->label('sdk.auth', [])
->label('sdk.namespace', 'account')
->label('sdk.method', 'createEmailSession')
@ -151,10 +153,9 @@ App::post('/v1/account/sessions/email')
->inject('dbForProject')
->inject('locale')
->inject('geodb')
->inject('audits')
->inject('usage')
->inject('events')
->action(function (string $email, string $password, Request $request, Response $response, Database $dbForProject, Locale $locale, Reader $geodb, Audit $audits, Stats $usage, Event $events) {
->action(function (string $email, string $password, Request $request, Response $response, Database $dbForProject, Locale $locale, Reader $geodb, Stats $usage, Event $events) {
$email = \strtolower($email);
$protocol = $request->getProtocol();
@ -200,11 +201,6 @@ App::post('/v1/account/sessions/email')
$dbForProject->deleteCachedDocument('users', $profile->getId());
$audits
->setResource('user/' . $profile->getId())
->setUser($profile)
;
if (!Config::getParam('domainVerification')) {
$response
->addHeader('X-Fallback-Cookies', \json_encode([Auth::$cookieName => Auth::encodeSession($profile->getId(), $secret)]))
@ -1649,6 +1645,7 @@ App::delete('/v1/account/sessions/:sessionId')
->groups(['api', 'account'])
->label('scope', 'account')
->label('event', 'users.[userId].sessions.[sessionId].delete')
->label('audits.resource', 'user/{user.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account')
->label('sdk.method', 'deleteSession')
@ -1662,10 +1659,9 @@ App::delete('/v1/account/sessions/:sessionId')
->inject('user')
->inject('dbForProject')
->inject('locale')
->inject('audits')
->inject('events')
->inject('usage')
->action(function (?string $sessionId, Request $request, Response $response, Document $user, Database $dbForProject, Locale $locale, Audit $audits, Event $events, Stats $usage) {
->action(function (?string $sessionId, Request $request, Response $response, Document $user, Database $dbForProject, Locale $locale, Event $events, Stats $usage) {
$protocol = $request->getProtocol();
$sessionId = ($sessionId === 'current')
@ -1680,8 +1676,6 @@ App::delete('/v1/account/sessions/:sessionId')
$dbForProject->deleteDocument('sessions', $session->getId());
$audits->setResource('user/' . $user->getId());
$session->setAttribute('current', false);
if ($session->getAttribute('secret') == Auth::hash(Auth::$secret)) { // If current session delete the cookies too
@ -1812,6 +1806,7 @@ App::delete('/v1/account/sessions')
->groups(['api', 'account'])
->label('scope', 'account')
->label('event', 'users.[userId].sessions.[sessionId].delete')
->label('audits.resource', 'user/{user.$id}')
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT])
->label('sdk.namespace', 'account')
->label('sdk.method', 'deleteSessions')
@ -1824,10 +1819,9 @@ App::delete('/v1/account/sessions')
->inject('user')
->inject('dbForProject')
->inject('locale')
->inject('audits')
->inject('events')
->inject('usage')
->action(function (Request $request, Response $response, Document $user, Database $dbForProject, Locale $locale, Audit $audits, Event $events, Stats $usage) {
->action(function (Request $request, Response $response, Document $user, Database $dbForProject, Locale $locale, Event $events, Stats $usage) {
$protocol = $request->getProtocol();
$sessions = $user->getAttribute('sessions', []);
@ -1835,8 +1829,6 @@ App::delete('/v1/account/sessions')
foreach ($sessions as $session) {/** @var Document $session */
$dbForProject->deleteDocument('sessions', $session->getId());
$audits->setResource('user/' . $user->getId());
if (!Config::getParam('domainVerification')) {
$response->addHeader('X-Fallback-Cookies', \json_encode([]));
}

View file

@ -36,7 +36,6 @@ use Appwrite\Utopia\Database\Validator\Queries as QueriesValidator;
use Appwrite\Utopia\Database\Validator\OrderAttributes;
use Appwrite\Utopia\Response;
use Appwrite\Detector\Detector;
use Appwrite\Event\Audit as EventAudit;
use Appwrite\Event\Database as EventDatabase;
use Appwrite\Event\Event;
use Appwrite\Stats\Stats;
@ -430,10 +429,9 @@ App::delete('/v1/databases/:databaseId')
->inject('response')
->inject('dbForProject')
->inject('events')
->inject('audits')
->inject('deletes')
->inject('usage')
->action(function (string $databaseId, Response $response, Database $dbForProject, Event $events, EventAudit $audits, Delete $deletes, Stats $usage) {
->action(function (string $databaseId, Response $response, Database $dbForProject, Event $events, Delete $deletes, Stats $usage) {
$database = $dbForProject->getDocument('databases', $databaseId);
@ -457,8 +455,6 @@ App::delete('/v1/databases/:databaseId')
->setPayload($response->output($database, Response::MODEL_DATABASE))
;
$audits->setPayload($database->getArrayCopy());
$usage->setParam('databases.delete', 1);
$response->noContent();
@ -799,10 +795,9 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId')
->inject('response')
->inject('dbForProject')
->inject('events')
->inject('audits')
->inject('deletes')
->inject('usage')
->action(function (string $databaseId, string $collectionId, Response $response, Database $dbForProject, Event $events, EventAudit $audits, Delete $deletes, Stats $usage) {
->action(function (string $databaseId, string $collectionId, Response $response, Database $dbForProject, Event $events, Delete $deletes, Stats $usage) {
$database = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId));
@ -834,8 +829,6 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId')
->setPayload($response->output($collection, Response::MODEL_COLLECTION))
;
$audits->setPayload($collection->getArrayCopy());
$usage
->setParam('databaseId', $databaseId)
->setParam('databases.collections.delete', 1);
@ -1386,9 +1379,8 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/attributes/:key
->inject('dbForProject')
->inject('database')
->inject('events')
->inject('audits')
->inject('usage')
->action(function (string $databaseId, string $collectionId, string $key, Response $response, Database $dbForProject, EventDatabase $database, Event $events, EventAudit $audits, Stats $usage) {
->action(function (string $databaseId, string $collectionId, string $key, Response $response, Database $dbForProject, EventDatabase $database, Event $events, Stats $usage) {
$db = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId));
@ -1453,8 +1445,6 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/attributes/:key
->setPayload($response->output($attribute, $model))
;
$audits->setPayload($attribute->getArrayCopy());
$response->noContent();
});
@ -1722,9 +1712,8 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/indexes/:key')
->inject('dbForProject')
->inject('database')
->inject('events')
->inject('audits')
->inject('usage')
->action(function (string $databaseId, string $collectionId, string $key, Response $response, Database $dbForProject, EventDatabase $database, Event $events, EventAudit $audits, Stats $usage) {
->action(function (string $databaseId, string $collectionId, string $key, Response $response, Database $dbForProject, EventDatabase $database, Event $events, Stats $usage) {
$db = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId));
@ -1770,8 +1759,6 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/indexes/:key')
->setPayload($response->output($index, Response::MODEL_INDEX))
;
$audits->setPayload($index->getArrayCopy());
$response->noContent();
});
@ -2324,11 +2311,10 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/documents/:docu
->inject('response')
->inject('dbForProject')
->inject('events')
->inject('audits')
->inject('deletes')
->inject('usage')
->inject('mode')
->action(function (string $databaseId, string $collectionId, string $documentId, Response $response, Database $dbForProject, Event $events, EventAudit $audits, Delete $deletes, Stats $usage, string $mode) {
->action(function (string $databaseId, string $collectionId, string $documentId, Response $response, Database $dbForProject, Event $events, Delete $deletes, Stats $usage, string $mode) {
$database = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId));
@ -2398,8 +2384,6 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/documents/:docu
->setPayload($response->output($document, Response::MODEL_DOCUMENT))
;
$audits->setPayload($document->getArrayCopy());
$response->noContent();
});

View file

@ -35,7 +35,6 @@ use Utopia\Storage\Validator\Upload;
use Utopia\Validator\ArrayList;
use Utopia\Validator\Boolean;
use Utopia\Validator\HexColor;
use Utopia\Validator\Integer;
use Utopia\Validator\Range;
use Utopia\Validator\Text;
use Utopia\Validator\WhiteList;
@ -281,11 +280,10 @@ App::delete('/v1/storage/buckets/:bucketId')
->param('bucketId', '', new UID(), 'Bucket unique ID.')
->inject('response')
->inject('dbForProject')
->inject('audits')
->inject('deletes')
->inject('events')
->inject('usage')
->action(function (string $bucketId, Response $response, Database $dbForProject, Audit $audits, Delete $deletes, Event $events, Stats $usage) {
->action(function (string $bucketId, Response $response, Database $dbForProject, Delete $deletes, Event $events, Stats $usage) {
$bucket = $dbForProject->getDocument('buckets', $bucketId);
if ($bucket->isEmpty()) {
@ -305,8 +303,6 @@ App::delete('/v1/storage/buckets/:bucketId')
->setPayload($response->output($bucket, Response::MODEL_BUCKET))
;
$audits->setPayload($bucket->getArrayCopy());
$usage->setParam('storage.buckets.delete', 1);
$response->noContent();

View file

@ -2,7 +2,6 @@
use Appwrite\Auth\Auth;
use Appwrite\Detector\Detector;
use Appwrite\Event\Audit as EventAudit;
use Appwrite\Event\Delete;
use Appwrite\Event\Event;
use Appwrite\Event\Mail;
@ -219,8 +218,7 @@ App::delete('/v1/teams/:teamId')
->inject('dbForProject')
->inject('events')
->inject('deletes')
->inject('audits')
->action(function (string $teamId, Response $response, Database $dbForProject, Event $events, Delete $deletes, EventAudit $audits) {
->action(function (string $teamId, Response $response, Database $dbForProject, Event $events, Delete $deletes) {
$team = $dbForProject->getDocument('teams', $teamId);
@ -252,8 +250,6 @@ App::delete('/v1/teams/:teamId')
->setPayload($response->output($team, Response::MODEL_TEAM))
;
$audits->setParam('data', $team->getArrayCopy());
$response->noContent();
});

View file

@ -17,8 +17,6 @@ use Utopia\Abuse\Adapters\TimeLimit;
use Utopia\Database\Database;
use Utopia\Database\Document;
use Utopia\Database\Validator\Authorization;
use Utopia\Registry\Registry;
use Utopia\Route;
App::init()
->groups(['api'])
@ -257,8 +255,9 @@ App::shutdown()
$requestParams = array_combine(
array_keys($route->getParams()), array_column($route->getParams(), 'value')
);
$user = $audits->getUser();
$parseLabel = function ($label) use ($responsePayload, $requestParams) {
$parseLabel = function ($label) use ($responsePayload, $requestParams, $user) {
preg_match_all('/{(.*?)}/', $label, $matches);
foreach ($matches[1] ?? [] as $pos => $match) {
$find = $matches[0][$pos];
@ -272,6 +271,7 @@ App::shutdown()
$replace = $parts[1];
$params = match ($namespace) {
'user' => $user,
'request' => $requestParams,
default => $responsePayload,
};