diff --git a/app/Http/Controllers/Admin/ModuleController.php b/app/Http/Controllers/Admin/ModuleController.php index 5721a94..7a178ba 100644 --- a/app/Http/Controllers/Admin/ModuleController.php +++ b/app/Http/Controllers/Admin/ModuleController.php @@ -36,9 +36,14 @@ public function create(): View */ public function store(Request $request): RedirectResponse { + $request->validate([ + 'id' => 'required|string|max:255|unique:modules,id', + 'api_token' => 'nullable|string|max:255|unique:modules,api_token', + ]); + $request->validate($this->rules()); - $api_token = Str::random(60); + $api_token = $request->input('api_token') ?: Str::random(60); $module = new Module(); @@ -58,7 +63,6 @@ public function store(Request $request): RedirectResponse private function rules(): array { return [ - 'id' => 'required|string|max:255', 'name' => 'required|string|max:255', 'url' => 'required|url', 'ip_port' => 'nullable|string|max:255', @@ -95,6 +99,11 @@ public function edit(Module $module): View */ public function update(Request $request, Module $module): RedirectResponse { + $request->validate([ + 'id' => 'required|string|max:255|unique:modules,id,'.$module->id, + 'api_token' => 'required|string|max:255|unique:modules,api_token,'.$module->id, + ]); + $request->validate($this->rules()); $module->id = $request->input('id');