fix: update admin management

This commit is contained in:
2026-08-20 08:25:43 +03:30
parent ecb2e9ff08
commit f9dd90f1ac
3 changed files with 181 additions and 75 deletions
+20 -13
View File
@@ -1,6 +1,5 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
@@ -14,19 +13,17 @@ class AdminController extends Controller
{
public function index()
{
$admins = Admin::query()
->with('permissions')
$admins = Admin::with('permissions')
->latest()
->paginate(10);
return view('admin.admins.index', compact('admins'));
}
public function create()
{
$permissions = Permission::query()
->orderBy('name')
->get();
$permissions = Permission::orderBy('id')->get();
return view(
'admin.admins.create',
@@ -34,6 +31,7 @@ class AdminController extends Controller
);
}
public function store(AdminStoreRequest $request)
{
$data = $request->validated();
@@ -53,11 +51,10 @@ class AdminController extends Controller
->with('success', 'مدیر با موفقیت ایجاد شد.');
}
public function edit(Admin $admin)
{
$permissions = Permission::query()
->orderBy('name')
->get();
$permissions = Permission::orderBy('id')->get();
$admin->load('permissions');
@@ -67,8 +64,11 @@ class AdminController extends Controller
);
}
public function update(AdminUpdateRequest $request, Admin $admin)
{
public function update(
AdminUpdateRequest $request,
Admin $admin
) {
$data = $request->validated();
$permissions = $data['permissions'] ?? [];
@@ -76,9 +76,15 @@ class AdminController extends Controller
unset($data['permissions']);
if (!empty($data['password'])) {
$data['password'] = Hash::make($data['password']);
$data['password'] = Hash::make(
$data['password']
);
} else {
unset($data['password']);
}
$admin->update($data);
@@ -87,9 +93,10 @@ class AdminController extends Controller
return redirect()
->route('admin.admins.index')
->with('success', 'اطلاعات مدیر با موفقیت ویرایش شد.');
->with('success', 'مدیر با موفقیت ویرایش شد.');
}
public function destroy(Admin $admin)
{
$admin->permissions()->detach();
+119 -45
View File
@@ -270,13 +270,14 @@
{{-- دسترسی‌ها --}}
<div class="col-xl-4">
<div class="card custom-card">
<div class="card-header">
<div class="d-flex justify-content-between align-items-center">
<div>
<div class="card-title mb-1">
@@ -291,62 +292,42 @@
</div>
</div>
<div class="card-body">
@php
@if($permissions->count())
$selectedPermissions = old(
'permissions',
$admin->permissions->pluck('id')->toArray()
);
<div class="d-flex flex-column gap-3">
@endphp
@foreach($permissions as $permission)
<div class="form-check">
@error('permissions')
<div class="alert alert-danger py-2">
{{ $message }}
</div>
@enderror
@forelse($permissions as $permission)
<div class="form-check form-check-lg mb-3">
<input class="form-check-input"
<input
type="checkbox"
class="form-check-input"
name="permissions[]"
value="{{ $permission->id }}"
id="permission_{{ $permission->id }}"
@checked(in_array(
$permission->id,
$selectedPermissions
))>
{{ $admin->permissions->contains($permission->id) ? 'checked' : '' }}
>
<label class="form-check-label"
for="permission_{{ $permission->id }}">
<span class="fw-semibold">
<label
class="form-check-label"
for="permission_{{ $permission->id }}"
>
{{ $permission->name }}
</span>
@if($permission->description)
<small class="text-muted d-block mt-1">
{{ $permission->description }}
</small>
@endif
</label>
</div>
@empty
@endforeach
</div>
@else
<div class="text-center text-muted py-4">
@@ -356,7 +337,7 @@
</div>
@endforelse
@endif
</div>
@@ -364,6 +345,99 @@
</div>
{{-- <div class="col-xl-4">--}}
{{-- <div class="card custom-card">--}}
{{-- <div class="card-header">--}}
{{-- <div>--}}
{{-- <div class="card-title mb-1">--}}
{{-- سطح دسترسی--}}
{{-- </div>--}}
{{-- <small class="text-muted">--}}
{{-- دسترسی‌های مدیر را مدیریت کنید.--}}
{{-- </small>--}}
{{-- </div>--}}
{{-- </div>--}}
{{-- <div class="card-body">--}}
{{-- @php--}}
{{-- $selectedPermissions = old(--}}
{{-- 'permissions',--}}
{{-- $admin->permissions->pluck('id')->toArray()--}}
{{-- );--}}
{{-- @endphp--}}
{{-- @error('permissions')--}}
{{-- <div class="alert alert-danger py-2">--}}
{{-- {{ $message }}--}}
{{-- </div>--}}
{{-- @enderror--}}
{{-- @forelse($permissions as $permission)--}}
{{-- <div class="form-check form-check-lg mb-3">--}}
{{-- <input class="form-check-input"--}}
{{-- type="checkbox"--}}
{{-- name="permissions[]"--}}
{{-- value="{{ $permission->id }}"--}}
{{-- id="permission_{{ $permission->id }}"--}}
{{-- @checked(in_array(--}}
{{-- $permission->id,--}}
{{-- $selectedPermissions--}}
{{-- ))>--}}
{{-- <label class="form-check-label"--}}
{{-- for="permission_{{ $permission->id }}">--}}
{{-- <span class="fw-semibold">--}}
{{-- {{ $permission->name }}--}}
{{-- </span>--}}
{{-- @if($permission->description)--}}
{{-- <small class="text-muted d-block mt-1">--}}
{{-- {{ $permission->description }}--}}
{{-- </small>--}}
{{-- @endif--}}
{{-- </label>--}}
{{-- </div>--}}
{{-- @empty--}}
{{-- <div class="text-center text-muted py-4">--}}
{{-- <i class="ri-shield-keyhole-line fs-2 d-block mb-2"></i>--}}
{{-- هنوز دسترسی‌ای تعریف نشده است.--}}
{{-- </div>--}}
{{-- @endforelse--}}
{{-- </div>--}}
{{-- </div>--}}
{{-- </div>--}}
</div>
@@ -380,17 +454,17 @@
<i class="ri-information-line me-1"></i>
آخرین ویرایش:
@if($admin->updated_at)
<td>
{{ $admin->updated_at->toJalali()->format('Y/m/d H:i') }}
</td>
<td>{{ $type->updated_at ? $type->updated_at->toJalali()->format('Y/m/d H:i') : '-' }}</td>
@else
-
<td>-</td>
@endif
</div>
+31 -6
View File
@@ -101,13 +101,38 @@
</td>
{{-- دسترسی‌ها --}}
<td style="min-width: 200px; max-width: 280px; white-space: normal;">
@forelse($admin->permissions as $permission)
<span class="badge bg-primary-subtle text-primary mb-1">{{ $permission->name }}</span>
@empty
<span class="text-muted fs-12">بدون دسترسی</span>
@endforelse
<td>
@if($admin->permissions->count())
<div class="d-flex flex-wrap gap-1">
@foreach($admin->permissions as $permission)
<span class="badge bg-light text-dark border">
{{ $permission->name }}
</span>
@endforeach
</div>
@else
<span class="text-muted">
بدون دسترسی
</span>
@endif
</td>
{{-- <td style="min-width: 200px; max-width: 280px; white-space: normal;">--}}
{{-- @forelse($admin->permissions as $permission)--}}
{{-- <span class="badge bg-primary-subtle text-primary mb-1">{{ $permission->name }}</span>--}}
{{-- @empty--}}
{{-- <span class="text-muted fs-12">بدون دسترسی</span>--}}
{{-- @endforelse--}}
{{-- </td>--}}
{{-- وضعیت --}}
<td>