mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
improve dependency
This commit is contained in:
@@ -710,8 +710,8 @@ App::error()
|
||||
->inject('logger')
|
||||
->inject('log')
|
||||
->inject('queueForUsage')
|
||||
->inject('hasDevelopmentKey')
|
||||
->action(function (Throwable $error, App $utopia, Request $request, Response $response, Document $project, ?Logger $logger, Log $log, Usage $queueForUsage, bool $hasDevelopmentKey) {
|
||||
->inject('developmentKey')
|
||||
->action(function (Throwable $error, App $utopia, Request $request, Response $response, Document $project, ?Logger $logger, Log $log, Usage $queueForUsage, Document $developmentKey) {
|
||||
$version = System::getEnv('_APP_VERSION', 'UNKNOWN');
|
||||
$route = $utopia->getRoute();
|
||||
$class = \get_class($error);
|
||||
@@ -912,7 +912,7 @@ App::error()
|
||||
|
||||
$type = $error->getType();
|
||||
|
||||
$output = ((App::isDevelopment()) || $hasDevelopmentKey) ? [
|
||||
$output = ((App::isDevelopment()) || (!$developmentKey->isEmpty())) ? [
|
||||
'message' => $message,
|
||||
'code' => $code,
|
||||
'file' => $file,
|
||||
@@ -953,7 +953,7 @@ App::error()
|
||||
|
||||
$response->dynamic(
|
||||
new Document($output),
|
||||
$utopia->isDevelopment() || $hasDevelopmentKey ? Response::MODEL_ERROR_DEV : Response::MODEL_ERROR
|
||||
$utopia->isDevelopment() || !$developmentKey->isEmpty() ? Response::MODEL_ERROR_DEV : Response::MODEL_ERROR
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -393,8 +393,8 @@ App::init()
|
||||
->inject('queueForUsage')
|
||||
->inject('dbForProject')
|
||||
->inject('mode')
|
||||
->inject('hasDevelopmentKey')
|
||||
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Connection $queue, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, Usage $queueForUsage, Database $dbForProject, string $mode, bool $hasDevelopmentKey) use ($usageDatabaseListener, $eventDatabaseListener) {
|
||||
->inject('developmentKey')
|
||||
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Connection $queue, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, Usage $queueForUsage, Database $dbForProject, string $mode, Document $developmentKey) use ($usageDatabaseListener, $eventDatabaseListener) {
|
||||
|
||||
$route = $utopia->getRoute();
|
||||
|
||||
@@ -461,7 +461,7 @@ App::init()
|
||||
$enabled // Abuse is enabled
|
||||
&& !$isAppUser // User is not API key
|
||||
&& !$isPrivilegedUser // User is not an admin
|
||||
&& !$hasDevelopmentKey // request doesn't not contain development key
|
||||
&& $developmentKey->isEmpty() // request doesn't not contain development key
|
||||
&& $abuse->check() // Route is rate-limited
|
||||
) {
|
||||
throw new Exception(Exception::GENERAL_RATE_LIMIT_EXCEEDED);
|
||||
|
||||
+4
-5
@@ -1814,14 +1814,14 @@ App::setResource('plan', function (array $plan = []) {
|
||||
return [];
|
||||
});
|
||||
|
||||
App::setResource('hasDevelopmentKey', function ($request, $project, $dbForConsole) {
|
||||
App::setResource('developmentKey', function ($request, $project, $dbForConsole) {
|
||||
$developmentKey = $request->getHeader('x-appwrite-development-key', '');
|
||||
// Check if given key match project's development keys
|
||||
$key = $project->find('secret', $developmentKey, 'developmentKeys');
|
||||
if ($key) {
|
||||
$expire = $key->getAttribute('expire');
|
||||
if (!empty($expire) && $expire < DatabaseDateTime::formatTz(DatabaseDateTime::now())) {
|
||||
return false;
|
||||
return new Document([]);
|
||||
}
|
||||
|
||||
$accessedAt = $key->getAttribute('accessedAt', '');
|
||||
@@ -1830,9 +1830,9 @@ App::setResource('hasDevelopmentKey', function ($request, $project, $dbForConsol
|
||||
Authorization::skip(fn () => $dbForConsole->updateDocument('keys', $key->getId(), $key));
|
||||
$dbForConsole->purgeCachedDocument('projects', $project->getId());
|
||||
}
|
||||
return true;
|
||||
return $key;
|
||||
}
|
||||
return false;
|
||||
return new Document([]);
|
||||
}, ['request', 'project', 'dbForConsole']);
|
||||
|
||||
App::setResource('team', function (Document $project, Database $dbForConsole, App $utopia, Request $request) {
|
||||
@@ -1867,4 +1867,3 @@ App::setResource(
|
||||
'isResourceBlocked',
|
||||
fn () => fn (Document $project, string $resourceType, ?string $resourceId) => false
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user