From 8cad8f5533345fdfa76cad0e68a0b02865522422 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Wed, 10 Apr 2024 19:46:31 +0200 Subject: [PATCH 1/3] fix: admin mode on console --- app/controllers/general.php | 10 ++++++++++ tests/e2e/General/ModeTest.php | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tests/e2e/General/ModeTest.php diff --git a/app/controllers/general.php b/app/controllers/general.php index 434117846b..d5fecac81e 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -367,6 +367,16 @@ function router(App $utopia, Database $dbForConsole, callable $getProjectDB, Swo return false; } +App::init() + ->groups(['api']) + ->inject('project') + ->inject('mode') + ->action(function(Document $project, string $mode) { + if ($mode === APP_MODE_ADMIN && $project->getId() === 'console') { + throw new AppwriteException(AppwriteException::GENERAL_BAD_REQUEST, 'Admin mode is not allowed for console project'); + } + }); + App::init() ->groups(['api', 'web']) ->inject('utopia') diff --git a/tests/e2e/General/ModeTest.php b/tests/e2e/General/ModeTest.php new file mode 100644 index 0000000000..ce0852a586 --- /dev/null +++ b/tests/e2e/General/ModeTest.php @@ -0,0 +1,32 @@ +client->call(Client::METHOD_GET, '/account', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'x-appwrite-mode' => 'admin', + ], $this->getHeaders())); + + $this->assertEquals(400, $response['headers']['status-code']); + $this->assertEquals(Exception::GENERAL_BAD_REQUEST, $response['body']['type']); + } +} From 11fdefa2b81ec9a44a8e287049f1161ff2e55ef0 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Wed, 10 Apr 2024 19:49:16 +0200 Subject: [PATCH 2/3] chore: run formatter --- app/controllers/general.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index d5fecac81e..a25e4826b9 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -371,7 +371,7 @@ App::init() ->groups(['api']) ->inject('project') ->inject('mode') - ->action(function(Document $project, string $mode) { + ->action(function (Document $project, string $mode) { if ($mode === APP_MODE_ADMIN && $project->getId() === 'console') { throw new AppwriteException(AppwriteException::GENERAL_BAD_REQUEST, 'Admin mode is not allowed for console project'); } From 7cff879e58e08e8f3e335b0226aed22a0f5782bc Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Wed, 10 Apr 2024 19:52:14 +0200 Subject: [PATCH 3/3] style: remove unused imports --- tests/e2e/General/ModeTest.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/e2e/General/ModeTest.php b/tests/e2e/General/ModeTest.php index ce0852a586..ceafbc4b3a 100644 --- a/tests/e2e/General/ModeTest.php +++ b/tests/e2e/General/ModeTest.php @@ -5,10 +5,8 @@ namespace Tests\E2E\Services\Console; use Appwrite\Extend\Exception; use Tests\E2E\Client; use Tests\E2E\Scopes\ProjectConsole; -use Tests\E2E\Scopes\ProjectCustom; use Tests\E2E\Scopes\Scope; use Tests\E2E\Scopes\SideClient; -use Tests\E2E\Scopes\SideConsole; class ModeTest extends Scope {