fix: complete admin permission
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
|||||||
use App\Http\Requests\Admin\Admins\adminEditRequest;
|
use App\Http\Requests\Admin\Admins\adminEditRequest;
|
||||||
use App\Http\Requests\Admin\Admins\adminStoreRequest;
|
use App\Http\Requests\Admin\Admins\adminStoreRequest;
|
||||||
use App\Models\Admin;
|
use App\Models\Admin;
|
||||||
|
use App\Models\AdminPermission;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
@@ -70,9 +71,38 @@ class AdminController extends Controller
|
|||||||
try {
|
try {
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
|
|
||||||
|
$permissions = $inputs['permissions'] ?? [];
|
||||||
|
|
||||||
|
unset($inputs['permissions']);
|
||||||
|
|
||||||
$inputs['password'] = Hash::make($inputs['password']);
|
$inputs['password'] = Hash::make($inputs['password']);
|
||||||
|
|
||||||
Admin::create($inputs);
|
$admin = Admin::create($inputs);
|
||||||
|
|
||||||
|
AdminPermission::create([
|
||||||
|
'admin_id' => $admin->id,
|
||||||
|
|
||||||
|
'flight_create' => $permissions['flight_create'] ?? 0,
|
||||||
|
'flight_edit' => $permissions['flight_edit'] ?? 0,
|
||||||
|
'flight_delete' => $permissions['flight_delete'] ?? 0,
|
||||||
|
|
||||||
|
'tour_create' => $permissions['tour_create'] ?? 0,
|
||||||
|
'tour_edit' => $permissions['tour_edit'] ?? 0,
|
||||||
|
'tour_delete' => $permissions['tour_delete'] ?? 0,
|
||||||
|
|
||||||
|
'booking_view' => $permissions['booking_view'] ?? 0,
|
||||||
|
'booking_edit' => $permissions['booking_edit'] ?? 0,
|
||||||
|
'booking_delete' => $permissions['booking_delete'] ?? 0,
|
||||||
|
|
||||||
|
'user_view' => $permissions['user_view'] ?? 0,
|
||||||
|
'user_edit' => $permissions['user_edit'] ?? 0,
|
||||||
|
'user_delete' => $permissions['user_delete'] ?? 0,
|
||||||
|
|
||||||
|
'admin_view' => $permissions['admin_view'] ?? 0,
|
||||||
|
'admin_create' => $permissions['admin_create'] ?? 0,
|
||||||
|
'admin_edit' => $permissions['admin_edit'] ?? 0,
|
||||||
|
'admin_delete' => $permissions['admin_delete'] ?? 0,
|
||||||
|
]);
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
@@ -92,7 +122,7 @@ class AdminController extends Controller
|
|||||||
return redirect()
|
return redirect()
|
||||||
->route('admin.admins.index')
|
->route('admin.admins.index')
|
||||||
->withErrors([
|
->withErrors([
|
||||||
'success' => 'عملیات با موفقیت انجام شد'
|
'success' => 'مدیر با موفقیت ایجاد شد'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,6 +136,8 @@ class AdminController extends Controller
|
|||||||
$inputs = $request->validated();
|
$inputs = $request->validated();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
|
|
||||||
if (!empty($inputs['password'])) {
|
if (!empty($inputs['password'])) {
|
||||||
@@ -114,8 +146,40 @@ class AdminController extends Controller
|
|||||||
unset($inputs['password']);
|
unset($inputs['password']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$permissions = $inputs['permissions'] ?? [];
|
||||||
|
unset($inputs['permissions']);
|
||||||
|
|
||||||
|
|
||||||
$admin->update($inputs);
|
$admin->update($inputs);
|
||||||
|
|
||||||
|
$permissionData = [
|
||||||
|
'flight_create' => $permissions['flight_create'] ?? 0,
|
||||||
|
'flight_edit' => $permissions['flight_edit'] ?? 0,
|
||||||
|
'flight_delete' => $permissions['flight_delete'] ?? 0,
|
||||||
|
|
||||||
|
'tour_create' => $permissions['tour_create'] ?? 0,
|
||||||
|
'tour_edit' => $permissions['tour_edit'] ?? 0,
|
||||||
|
'tour_delete' => $permissions['tour_delete'] ?? 0,
|
||||||
|
|
||||||
|
'booking_view' => $permissions['booking_view'] ?? 0,
|
||||||
|
'booking_edit' => $permissions['booking_edit'] ?? 0,
|
||||||
|
'booking_delete' => $permissions['booking_delete'] ?? 0,
|
||||||
|
|
||||||
|
'user_view' => $permissions['user_view'] ?? 0,
|
||||||
|
'user_edit' => $permissions['user_edit'] ?? 0,
|
||||||
|
'user_delete' => $permissions['user_delete'] ?? 0,
|
||||||
|
|
||||||
|
'admin_view' => $permissions['admin_view'] ?? 0,
|
||||||
|
'admin_create' => $permissions['admin_create'] ?? 0,
|
||||||
|
'admin_edit' => $permissions['admin_edit'] ?? 0,
|
||||||
|
'admin_delete' => $permissions['admin_delete'] ?? 0,
|
||||||
|
];
|
||||||
|
|
||||||
|
AdminPermission::updateOrCreate(
|
||||||
|
['admin_id' => $admin->id],
|
||||||
|
$permissionData
|
||||||
|
);
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
|
||||||
} catch (\Exception $exception) {
|
} catch (\Exception $exception) {
|
||||||
@@ -136,8 +200,11 @@ class AdminController extends Controller
|
|||||||
->withErrors([
|
->withErrors([
|
||||||
'success' => 'عملیات با موفقیت انجام شد'
|
'success' => 'عملیات با موفقیت انجام شد'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function destroy(Admin $admin)
|
public function destroy(Admin $admin)
|
||||||
{
|
{
|
||||||
$admin->delete();
|
$admin->delete();
|
||||||
|
|||||||
@@ -60,6 +60,90 @@ class adminEditRequest extends FormRequest
|
|||||||
'image',
|
'image',
|
||||||
' mimes:jpg,jpeg,png,webp'
|
' mimes:jpg,jpeg,png,webp'
|
||||||
],
|
],
|
||||||
|
'permissions' => [
|
||||||
|
'nullable',
|
||||||
|
'array',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.flight_create' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.flight_edit' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.flight_delete' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.tour_create' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.tour_edit' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.tour_delete' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.booking_view' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.booking_edit' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.booking_delete' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.user_view' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.user_edit' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.user_delete' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.admin_view' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.admin_create' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.admin_edit' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
|
|
||||||
|
'permissions.admin_delete' => [
|
||||||
|
'nullable',
|
||||||
|
'boolean',
|
||||||
|
],
|
||||||
'status' => [
|
'status' => [
|
||||||
'required',
|
'required',
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -52,11 +52,30 @@ class adminStoreRequest extends FormRequest
|
|||||||
'min:6',
|
'min:6',
|
||||||
|
|
||||||
],
|
],
|
||||||
'image' => [
|
'permissions' => [
|
||||||
'nullable',
|
'nullable',
|
||||||
'image',
|
'array',
|
||||||
' mimes:jpg,jpeg,png,webp'
|
|
||||||
],
|
],
|
||||||
|
'permissions.flight_create' => ['nullable', 'boolean'],
|
||||||
|
'permissions.flight_edit' => ['nullable', 'boolean'],
|
||||||
|
'permissions.flight_delete' => ['nullable', 'boolean'],
|
||||||
|
|
||||||
|
'permissions.tour_create' => ['nullable', 'boolean'],
|
||||||
|
'permissions.tour_edit' => ['nullable', 'boolean'],
|
||||||
|
'permissions.tour_delete' => ['nullable', 'boolean'],
|
||||||
|
|
||||||
|
'permissions.booking_view' => ['nullable', 'boolean'],
|
||||||
|
'permissions.booking_edit' => ['nullable', 'boolean'],
|
||||||
|
'permissions.booking_delete' => ['nullable', 'boolean'],
|
||||||
|
|
||||||
|
'permissions.user_view' => ['nullable', 'boolean'],
|
||||||
|
'permissions.user_edit' => ['nullable', 'boolean'],
|
||||||
|
'permissions.user_delete' => ['nullable', 'boolean'],
|
||||||
|
|
||||||
|
'permissions.admin_view' => ['nullable', 'boolean'],
|
||||||
|
'permissions.admin_create' => ['nullable', 'boolean'],
|
||||||
|
'permissions.admin_edit' => ['nullable', 'boolean'],
|
||||||
|
'permissions.admin_delete' => ['nullable', 'boolean'],
|
||||||
'status' => [
|
'status' => [
|
||||||
'required',
|
'required',
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user