Skip to content

Commit 0a970e4

Browse files
[5.x] Support custom validation rules for asset containers (#13459)
1 parent 37dd227 commit 0a970e4

2 files changed

Lines changed: 7 additions & 2 deletions

File tree

src/Fields/Validator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public function attributes()
122122
}, collect())->all();
123123
}
124124

125-
private function parse($rule)
125+
public function parse($rule)
126126
{
127127
if (is_string($rule) && Str::startsWith($rule, 'new ')) {
128128
return $this->parseClassBasedRule($rule);

src/Http/Controllers/CP/Assets/AssetsController.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Statamic\Http\Controllers\CP\Assets;
44

5+
use Facades\Statamic\Fields\Validator as FieldValidator;
56
use Illuminate\Http\Request;
67
use Illuminate\Support\Facades\Validator;
78
use Illuminate\Validation\ValidationException;
@@ -81,8 +82,12 @@ public function store(Request $request)
8182
abort_unless($container->allowUploads(), 403);
8283
$this->authorize('store', [AssetContract::class, $container]);
8384

85+
$validationRules = collect($container->validationRules())
86+
->map(fn ($rule) => FieldValidator::parse($rule))
87+
->all();
88+
8489
$request->validate([
85-
'file' => array_merge(['file', new AllowedFile], $container->validationRules()),
90+
'file' => array_merge(['file', new AllowedFile], $validationRules),
8691
]);
8792

8893
$file = $request->file('file');

0 commit comments

Comments
 (0)