check() && Gate::allowIf('isConceptor'); } /** * Prepare the data for validation. * * @return void */ protected function prepareForValidation() { $this->merge([ 'published' => $this->published ? true : false ]); } /** * Get the validation rules that apply to the request. * * @return array */ public function rules(): array { return [ 'firstname' => 'required|string|min:3|max:255', 'lastname' => 'required|string|min:3|max:255', 'email' => 'required|email:rfc,strict,dns,spoof,filter|unique:users,email', 'password' => [ 'required', 'required_with:password_confirmation', 'confirmed', 'max:255', Password::min(8) ->letters() ->mixedCase() ->numbers() ->symbols() ->uncompromised() ], 'role' => ['required', new Enum(RoleEnum::class)], 'published' => 'required|boolean' ]; } /** * Get custom attributes for validator errors. * * @return array */ public function attributes(): array { return [ 'firstname' => trans('nom de l\'utilisateur'), 'lastname' => trans('slug de l\'utilisateur'), 'email' => trans('email de l\'utilisateur'), 'password' => trans('mot de passe du compte de l\'utilisateur'), 'role' => trans('role de l\'utilisateur'), 'published' => trans('l\'état de publication de l\'utilisateur') ]; } }