diff --git a/app/Http/Controllers/App/MediaController.php b/app/Http/Controllers/App/MediaController.php index c0227873..310e691e 100644 --- a/app/Http/Controllers/App/MediaController.php +++ b/app/Http/Controllers/App/MediaController.php @@ -15,6 +15,7 @@ use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Illuminate\Validation\Rule; class MediaController extends Controller { @@ -118,6 +119,12 @@ public function duplicate(Media $media, Request $request): JsonResponse $sourceModel = $media->mediable; $this->authorizeModelOwnership($sourceModel, $request); + $request->validate([ + 'targets' => ['required', 'array', 'max:50'], + 'targets.*.model' => ['required', 'string', Rule::in(['postPlatform', 'workspace', 'user'])], + 'targets.*.model_id' => ['required', 'string'], + ]); + $targets = $request->input('targets', []); $duplicates = []; diff --git a/app/Http/Requests/Api/Post/UpdatePostRequest.php b/app/Http/Requests/Api/Post/UpdatePostRequest.php index e317ac84..52434859 100644 --- a/app/Http/Requests/Api/Post/UpdatePostRequest.php +++ b/app/Http/Requests/Api/Post/UpdatePostRequest.php @@ -20,7 +20,7 @@ public function authorize(): bool public function rules(): array { return [ - 'status' => ['required', 'string', Rule::in(array_column(Status::cases(), 'value'))], + 'status' => ['required', 'string', Rule::in([Status::Draft->value, Status::Scheduled->value, Status::Publishing->value])], 'synced' => ['required', 'boolean'], 'platforms' => ['required', 'array'], 'platforms.*.id' => ['required', 'uuid', Rule::exists('post_platforms', 'id')->where('post_id', $this->route('post') instanceof Post ? $this->route('post')->id : $this->route('post'))], diff --git a/app/Http/Requests/App/Post/UpdatePostRequest.php b/app/Http/Requests/App/Post/UpdatePostRequest.php index 22df881b..d27ef242 100644 --- a/app/Http/Requests/App/Post/UpdatePostRequest.php +++ b/app/Http/Requests/App/Post/UpdatePostRequest.php @@ -19,7 +19,7 @@ public function authorize(): bool public function rules(): array { return [ - 'status' => ['required', 'string', Rule::in(array_column(Status::cases(), 'value'))], + 'status' => ['required', 'string', Rule::in([Status::Draft->value, Status::Scheduled->value, Status::Publishing->value])], 'synced' => ['required', 'boolean'], 'scheduled_at' => [ 'sometimes',