feat:fix form request and controllers for admin side

This commit is contained in:
2026-08-20 12:58:50 +03:30
parent cdc387fef6
commit e30ccbdbef
3 changed files with 271 additions and 62 deletions
+33 -1
View File
@@ -74,14 +74,28 @@ class AdminController extends Controller
$admin = Admin::create($inputs); $admin = Admin::create($inputs);
$admin->permission()->create([ $admin->permission()->create([
'admin_view' => $request->boolean('admin_view'), 'admin_view' => $request->boolean('admin_view'),
'admin_create' => $request->boolean('admin_create'), 'admin_create' => $request->boolean('admin_create'),
'admin_edit' => $request->boolean('admin_edit'), 'admin_edit' => $request->boolean('admin_edit'),
'admin_delete' => $request->boolean('admin_delete'), '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'),
]); ]);
DB::commit(); DB::commit();
} catch (\Exception $exception) { } catch (\Exception $exception) {
@@ -137,10 +151,28 @@ class AdminController extends Controller
'admin_id' => $admin->id, 'admin_id' => $admin->id,
], ],
[ [
// مدیران
'admin_view' => $request->boolean('admin_view'), 'admin_view' => $request->boolean('admin_view'),
'admin_create' => $request->boolean('admin_create'), 'admin_create' => $request->boolean('admin_create'),
'admin_edit' => $request->boolean('admin_edit'), 'admin_edit' => $request->boolean('admin_edit'),
'admin_delete' => $request->boolean('admin_delete'), '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'),
] ]
); );
+108 -27
View File
@@ -2,66 +2,147 @@
namespace App\Http\Requests\Admin; namespace App\Http\Requests\Admin;
use Illuminate\Contracts\Validation\ValidationRule; use App\Enums\AdminStatus;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class AdminStoreRequest extends FormRequest class AdminStoreRequest extends FormRequest
{ {
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool public function authorize(): bool
{ {
return true; return true;
} }
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array public function rules(): array
{ {
return [ return [
'first_name' => [ 'first_name' => [
'required', 'required',
'persian_alpha', 'string',
'min:2', 'max:255',
'max:100',
], ],
'last_name' => [ 'last_name' => [
'required', 'required',
'persian_alpha', 'string',
'min:3', 'max:255',
'max:100',
], ],
'username' => [ 'username' => [
'required', 'required',
'string', 'string',
'min:3', 'max:255',
'max:100',
'unique:admins,username', 'unique:admins,username',
], ],
'email' => [ 'email' => [
'required', 'required',
'email', 'email',
'max:255', 'max:255',
'unique:admins,email' 'unique:admins,email',
], ],
'password' => 'password' => [
['required', 'required',
'string', 'string',
'min:8' 'min:8',
'confirmed',
], ],
'status' => ['required'], 'status' => [
'admin_view' => ['nullable', 'boolean'], 'required',
'admin_create' => ['nullable', 'boolean'], Rule::in([
'admin_edit' => ['nullable', 'boolean'], AdminStatus::ENABLE->value,
'admin_delete' => ['nullable', 'boolean'], 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',
],
]; ];
} }
} }
+119 -23
View File
@@ -2,59 +2,155 @@
namespace App\Http\Requests\Admin; namespace App\Http\Requests\Admin;
use Illuminate\Contracts\Validation\ValidationRule; use App\Enums\AdminStatus;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class AdminUpdateRequest extends FormRequest class AdminUpdateRequest extends FormRequest
{ {
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool public function authorize(): bool
{ {
return true; return true;
} }
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array public function rules(): array
{ {
$admin = $this->route('admin');
return [ return [
// اطلاعات مدیر
'first_name' => [ 'first_name' => [
'required', 'required',
'persian_alpha', 'string',
'min:2', 'max:255',
'max:100',
], ],
'last_name' => [ 'last_name' => [
'required', 'required',
'persian_alpha', 'string',
'min:3', 'max:255',
'max:100',
], ],
'username' => [ 'username' => [
'required', 'required',
'unique:admins,username,' . $this->route('admin')->id, 'string',
'max:255',
Rule::unique('admins', 'username')->ignore($admin->id),
], ],
'email' => [ 'email' => [
'required', 'required',
'email', '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',
],
]; ];
} }
} }