fix(api): used ssh keys can be deleted

This commit is contained in:
peaklabs-dev
2025-04-03 14:07:11 +02:00
parent 0130e72722
commit 34699129f4

View File

@@ -368,6 +368,20 @@ class SecurityController extends Controller
response: 404, response: 404,
description: 'Private Key not found.', description: 'Private Key not found.',
), ),
new OA\Response(
response: 422,
description: 'Private Key is in use and cannot be deleted.',
content: [
new OA\MediaType(
mediaType: 'application/json',
schema: new OA\Schema(
type: 'object',
properties: [
'message' => ['type' => 'string', 'example' => 'Private Key is in use and cannot be deleted.'],
]
)
),
]),
] ]
)] )]
public function delete_key(Request $request) public function delete_key(Request $request)
@@ -384,6 +398,14 @@ class SecurityController extends Controller
if (is_null($key)) { if (is_null($key)) {
return response()->json(['message' => 'Private Key not found.'], 404); return response()->json(['message' => 'Private Key not found.'], 404);
} }
if ($key->isInUse()) {
return response()->json([
'message' => 'Private Key is in use and cannot be deleted.',
'details' => 'This private key is currently being used by servers, applications, or Git integrations.',
], 422);
}
$key->forceDelete(); $key->forceDelete();
return response()->json([ return response()->json([