diff --git a/app/Http/Controllers/Admin/AdminController.php b/app/Http/Controllers/Admin/AdminController.php index a36a53c..84911b2 100644 --- a/app/Http/Controllers/Admin/AdminController.php +++ b/app/Http/Controllers/Admin/AdminController.php @@ -74,13 +74,27 @@ class AdminController extends Controller $admin = Admin::create($inputs); + $admin->permission()->create([ + 'admin_view' => $request->boolean('admin_view'), + 'admin_create' => $request->boolean('admin_create'), + 'admin_edit' => $request->boolean('admin_edit'), + 'admin_delete' => $request->boolean('admin_delete'), + + 'user_view' => $request->boolean('user_view'), + 'user_edit' => $request->boolean('user_edit'), + 'user_delete' => $request->boolean('user_delete'), + + 'tour_view' => $request->boolean('tour_view'), + 'tour_create' => $request->boolean('tour_create'), + 'tour_edit' => $request->boolean('tour_edit'), + 'tour_delete' => $request->boolean('tour_delete'), + + 'flight_view' => $request->boolean('flight_view'), + 'flight_create' => $request->boolean('flight_create'), + 'flight_edit' => $request->boolean('flight_edit'), + 'flight_delete' => $request->boolean('flight_delete'), + ]); - $admin->permission()->create([ - 'admin_view' => $request->boolean('admin_view'), - 'admin_create' => $request->boolean('admin_create'), - 'admin_edit' => $request->boolean('admin_edit'), - 'admin_delete' => $request->boolean('admin_delete'), - ]); DB::commit(); @@ -137,10 +151,28 @@ class AdminController extends Controller 'admin_id' => $admin->id, ], [ - 'admin_view' => $request->boolean('admin_view'), - 'admin_create' => $request->boolean('admin_create'), - 'admin_edit' => $request->boolean('admin_edit'), - 'admin_delete' => $request->boolean('admin_delete'), + // مدیران + 'admin_view' => $request->boolean('admin_view'), + 'admin_create' => $request->boolean('admin_create'), + 'admin_edit' => $request->boolean('admin_edit'), + 'admin_delete' => $request->boolean('admin_delete'), + + // کاربران + 'user_view' => $request->boolean('user_view'), + 'user_edit' => $request->boolean('user_edit'), + 'user_delete' => $request->boolean('user_delete'), + + // تورها + 'tour_view' => $request->boolean('tour_view'), + 'tour_create' => $request->boolean('tour_create'), + 'tour_edit' => $request->boolean('tour_edit'), + 'tour_delete' => $request->boolean('tour_delete'), + + // پروازها + 'flight_view' => $request->boolean('flight_view'), + 'flight_create' => $request->boolean('flight_create'), + 'flight_edit' => $request->boolean('flight_edit'), + 'flight_delete' => $request->boolean('flight_delete'), ] ); diff --git a/app/Http/Requests/Admin/AdminStoreRequest.php b/app/Http/Requests/Admin/AdminStoreRequest.php index 7dae643..290273e 100644 --- a/app/Http/Requests/Admin/AdminStoreRequest.php +++ b/app/Http/Requests/Admin/AdminStoreRequest.php @@ -2,66 +2,147 @@ namespace App\Http\Requests\Admin; -use Illuminate\Contracts\Validation\ValidationRule; +use App\Enums\AdminStatus; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; class AdminStoreRequest extends FormRequest { - /** - * Determine if the user is authorized to make this request. - */ public function authorize(): bool { return true; } - /** - * Get the validation rules that apply to the request. - * - * @return array|string> - */ public function rules(): array { return [ + 'first_name' => [ 'required', - 'persian_alpha', - 'min:2', - 'max:100', + 'string', + 'max:255', ], 'last_name' => [ 'required', - 'persian_alpha', - 'min:3', - 'max:100', + 'string', + 'max:255', ], + 'username' => [ 'required', 'string', - 'min:3', - 'max:100', + 'max:255', 'unique:admins,username', ], + 'email' => [ 'required', 'email', 'max:255', - 'unique:admins,email' + 'unique:admins,email', ], - 'password' => - ['required', - 'string', - 'min:8' - ], + 'password' => [ + 'required', + 'string', + 'min:8', + 'confirmed', + ], - 'status' => ['required'], - 'admin_view' => ['nullable', 'boolean'], - 'admin_create' => ['nullable', 'boolean'], - 'admin_edit' => ['nullable', 'boolean'], - 'admin_delete' => ['nullable', 'boolean'], + 'status' => [ + 'required', + Rule::in([ + AdminStatus::ENABLE->value, + AdminStatus::DISABLE->value, + ]), + ], + + 'admin_view' => [ + 'nullable', + 'boolean', + ], + + 'admin_create' => [ + 'nullable', + 'boolean', + ], + + 'admin_edit' => [ + 'nullable', + 'boolean', + ], + + 'admin_delete' => [ + 'nullable', + 'boolean', + ], + + + 'user_view' => [ + 'nullable', + 'boolean', + ], + + 'user_edit' => [ + 'nullable', + 'boolean', + ], + + 'user_delete' => [ + 'nullable', + 'boolean', + ], + + + // ========================= + // دسترسی تورها + // ========================= + + 'tour_view' => [ + 'nullable', + 'boolean', + ], + + 'tour_create' => [ + 'nullable', + 'boolean', + ], + + 'tour_edit' => [ + 'nullable', + 'boolean', + ], + + 'tour_delete' => [ + 'nullable', + 'boolean', + ], + + + // ========================= + // دسترسی پروازها + // ========================= + + 'flight_view' => [ + 'nullable', + 'boolean', + ], + + 'flight_create' => [ + 'nullable', + 'boolean', + ], + + 'flight_edit' => [ + 'nullable', + 'boolean', + ], + + 'flight_delete' => [ + 'nullable', + 'boolean', + ], ]; } - } diff --git a/app/Http/Requests/Admin/AdminUpdateRequest.php b/app/Http/Requests/Admin/AdminUpdateRequest.php index 81f229f..b8f9de4 100644 --- a/app/Http/Requests/Admin/AdminUpdateRequest.php +++ b/app/Http/Requests/Admin/AdminUpdateRequest.php @@ -2,59 +2,155 @@ namespace App\Http\Requests\Admin; -use Illuminate\Contracts\Validation\ValidationRule; +use App\Enums\AdminStatus; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; class AdminUpdateRequest extends FormRequest { - /** - * Determine if the user is authorized to make this request. - */ public function authorize(): bool { return true; } - /** - * Get the validation rules that apply to the request. - * - * @return array|string> - */ public function rules(): array { + $admin = $this->route('admin'); + return [ + + // اطلاعات مدیر 'first_name' => [ 'required', - 'persian_alpha', - 'min:2', - 'max:100', + 'string', + 'max:255', ], + 'last_name' => [ 'required', - 'persian_alpha', - 'min:3', - 'max:100', + 'string', + 'max:255', ], 'username' => [ 'required', - 'unique:admins,username,' . $this->route('admin')->id, + 'string', + 'max:255', + Rule::unique('admins', 'username')->ignore($admin->id), ], 'email' => [ 'required', 'email', - 'unique:admins,email,' . $this->route('admin')->id, + 'max:255', + Rule::unique('admins', 'email')->ignore($admin->id), ], - 'password' => ['nullable', 'min:8'], + 'password' => [ + 'nullable', + 'string', + 'min:8', + 'confirmed', + ], - 'status' => ['required'], + 'status' => [ + 'required', + Rule::in([ + AdminStatus::ENABLE->value, + AdminStatus::DISABLE->value, + ]), + ], - 'admin_view' => ['nullable', 'boolean'], - 'admin_create' => ['nullable', 'boolean'], - 'admin_edit' => ['nullable', 'boolean'], - 'admin_delete' => ['nullable', 'boolean'], + + // ========================= + // دسترسی مدیران + // ========================= + + 'admin_view' => [ + 'nullable', + 'boolean', + ], + + 'admin_create' => [ + 'nullable', + 'boolean', + ], + + 'admin_edit' => [ + 'nullable', + 'boolean', + ], + + 'admin_delete' => [ + 'nullable', + 'boolean', + ], + + + // ========================= + // دسترسی کاربران + // ========================= + + 'user_view' => [ + 'nullable', + 'boolean', + ], + + 'user_edit' => [ + 'nullable', + 'boolean', + ], + + 'user_delete' => [ + 'nullable', + 'boolean', + ], + + + // ========================= + // دسترسی تورها + // ========================= + + 'tour_view' => [ + 'nullable', + 'boolean', + ], + + 'tour_create' => [ + 'nullable', + 'boolean', + ], + + 'tour_edit' => [ + 'nullable', + 'boolean', + ], + + 'tour_delete' => [ + 'nullable', + 'boolean', + ], + + + 'flight_view' => [ + 'nullable', + 'boolean', + ], + + 'flight_create' => [ + 'nullable', + 'boolean', + ], + + 'flight_edit' => [ + 'nullable', + 'boolean', + ], + + 'flight_delete' => [ + 'nullable', + 'boolean', + ], ]; } }