fix(api): audit moved resources

This commit is contained in:
Andras Bacsai committed 2026-07-07 21:20:41 +02:00
1 parent f244b5e25d
commit 6872f63f5f
2 files changed
+53 -3

No files matched your search

+18 -3
View File
@@ -3,12 +3,15 @@
use App\Enums\BuildPackTypes;
use App\Enums\RedirectTypes;
use App\Enums\StaticImageTypes;
use App\Models\Environment;
use App\Rules\ValidGitBranch;
use App\Support\ValidationPatterns;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
function getTeamIdFromToken()
@@ -173,10 +176,10 @@ function sharedDataApplications()
];
}
function moveResourceToEnvironment(Request $request, $resource, string $resourceType, int $teamId): \Illuminate\Http\JsonResponse
function moveResourceToEnvironment(Request $request, $resource, string $resourceType, int $teamId): JsonResponse
{
$validator = \Illuminate\Support\Facades\Validator::make($request->all(), [
$validator = Validator::make($request->all(), [
'environment_uuid' => 'required|string',
]);
@@ -195,7 +198,7 @@ function moveResourceToEnvironment(Request $request, $resource, string $resource
], 422);
}
$newEnvironment = \App\Models\Environment::ownedByCurrentTeamAPI($teamId)
$newEnvironment = Environment::ownedByCurrentTeamAPI($teamId)
->whereUuid($request->environment_uuid)
->first();
@@ -209,8 +212,20 @@ function moveResourceToEnvironment(Request $request, $resource, string $resource
return response()->json(['message' => "$resourceType is already in this environment."], 400);
}
$oldEnvironment = $resource->environment()->with('project')->first();
$resource->update(['environment_id' => $newEnvironment->id]);
auditLog('api.'.str($resourceType)->lower()->value().'.moved', [
'team_id' => $teamId,
'resource_uuid' => $resource->uuid,
'resource_type' => str($resourceType)->lower()->value(),
'from_project_uuid' => $oldEnvironment?->project?->uuid,
'from_environment_uuid' => $oldEnvironment?->uuid,
'to_project_uuid' => $newEnvironment->project->uuid,
'to_environment_uuid' => $newEnvironment->uuid,
]);
return response()->json([
'message' => "$resourceType moved successfully.",
'uuid' => $resource->uuid,