ldc-com-app-bo/app/Http/Requests/Bo/AppUser/StoreAppUserRequest.php

81 lines
2.1 KiB
PHP
Raw Permalink Normal View History

2023-03-14 16:17:23 +01:00
<?php
namespace App\Http\Requests\Bo\AppUser;
2023-03-15 10:41:01 +01:00
use App\Enums\AppUserRolesEnum;
2023-03-14 16:17:23 +01:00
use Illuminate\Foundation\Http\FormRequest;
2023-03-15 10:41:01 +01:00
use Kwaadpepper\Enum\Rules\EnumIsValidRule;
2023-07-25 12:55:22 +02:00
use Illuminate\Validation\Rules\Password;
2023-03-14 16:17:23 +01:00
class StoreAppUserRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
2023-03-15 10:41:01 +01:00
* @return boolean
2023-03-14 16:17:23 +01:00
*/
public function authorize()
{
2023-03-15 10:41:01 +01:00
return auth('backend')->check();
2023-03-14 16:17:23 +01:00
}
2023-03-31 15:24:32 +02:00
/**
* Prepare the data for validation.
*
* @return void
*/
protected function prepareForValidation()
{
$this->merge([
'status' => $this->status ? true : false,
'authorizedFolders' => $this->authorizedFolders ? $this->authorizedFolders : [],
]);
}
2023-03-14 16:17:23 +01:00
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
2023-03-15 10:41:01 +01:00
'lastname' => 'required|min:3|max:255',
'firstname' => 'required|min:3|max:255',
'email' => 'required|min:3|max:255|email:rfc,dns|unique:app_users,email',
2023-07-25 12:55:22 +02:00
'password' => [
'required', 'required_with:password_confirmation', 'confirmed', 'max:255',
Password::min(8)
->letters()
->mixedCase()
->numbers()
->symbols()
],
2023-03-31 15:24:32 +02:00
'authorizedFolders' => 'present|array',
2023-03-15 10:41:01 +01:00
'role' => [
'required',
new EnumIsValidRule(AppUserRolesEnum::class)
],
2023-03-31 15:24:32 +02:00
'status' => 'required|boolean'
2023-03-15 10:41:01 +01:00
];
}
/**
* Get custom attributes for validator errors.
*
* @return array
*/
public function attributes()
{
return [
'lastname' => \trans('nom'),
'firstname' => \trans('prénom'),
'email' => \trans('email'),
'password' => \trans('mot de passe'),
'authorizedFolders' => \trans('dossiers autorisés'),
'role' => \trans('rôle'),
'status' => \trans('statut')
2023-03-14 16:17:23 +01:00
];
}
}