From 8eebb82eba4e33edd069bfd95f4705f182856e0c Mon Sep 17 00:00:00 2001 From: MartinOscar <40749467+RMartinOscar@users.noreply.github.com> Date: Thu, 7 Nov 2024 23:15:41 +0100 Subject: [PATCH] Fix AutoDeploy & KeyCreationService (#701) * Fix AutoDeploy & KeyCreationService * Get rid of 2nd param & unset perm --- app/Http/Controllers/Admin/ApiController.php | 3 ++- app/Services/Api/KeyCreationService.php | 6 +++--- app/Services/Nodes/NodeAutoDeployService.php | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Admin/ApiController.php b/app/Http/Controllers/Admin/ApiController.php index e74dcc991..de7d54154 100644 --- a/app/Http/Controllers/Admin/ApiController.php +++ b/app/Http/Controllers/Admin/ApiController.php @@ -68,7 +68,8 @@ class ApiController extends Controller $this->keyCreationService->setKeyType(ApiKey::TYPE_APPLICATION)->handle([ 'memo' => $request->input('memo'), 'user_id' => $request->user()->id, - ], $request->getKeyPermissions()); + 'permissions' => $request->getKeyPermissions(), + ]); $this->alert->success('A new application API key has been generated for your account.')->flash(); diff --git a/app/Services/Api/KeyCreationService.php b/app/Services/Api/KeyCreationService.php index 66151d28a..d2649fb22 100644 --- a/app/Services/Api/KeyCreationService.php +++ b/app/Services/Api/KeyCreationService.php @@ -26,7 +26,7 @@ class KeyCreationService * * @throws \App\Exceptions\Model\DataValidationException */ - public function handle(array $data, array $permissions = []): ApiKey + public function handle(array $data): ApiKey { $data = array_merge($data, [ 'key_type' => $this->keyType, @@ -34,8 +34,8 @@ class KeyCreationService 'token' => str_random(ApiKey::KEY_LENGTH), ]); - if ($this->keyType === ApiKey::TYPE_APPLICATION) { - $data['permissions'] = array_merge($data['permissions'], $permissions); + if ($this->keyType !== ApiKey::TYPE_APPLICATION) { + unset($data['permissions']); } return ApiKey::query()->forceCreate($data); diff --git a/app/Services/Nodes/NodeAutoDeployService.php b/app/Services/Nodes/NodeAutoDeployService.php index ace7fd199..5ebeeca50 100644 --- a/app/Services/Nodes/NodeAutoDeployService.php +++ b/app/Services/Nodes/NodeAutoDeployService.php @@ -38,7 +38,8 @@ class NodeAutoDeployService $key = $this->keyCreationService->setKeyType(ApiKey::TYPE_APPLICATION)->handle([ 'memo' => 'Automatically generated node deployment key.', 'user_id' => $request->user()->id, - ], ['permissions' => [Node::RESOURCE_NAME => AdminAcl::READ]]); + 'permissions' => [Node::RESOURCE_NAME => AdminAcl::READ], + ]); } $token = $key->identifier . $key->token;