fix: update admin management
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin;
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
@@ -14,19 +13,17 @@ class AdminController extends Controller
|
|||||||
{
|
{
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$admins = Admin::query()
|
$admins = Admin::with('permissions')
|
||||||
->with('permissions')
|
|
||||||
->latest()
|
->latest()
|
||||||
->paginate(10);
|
->paginate(10);
|
||||||
|
|
||||||
return view('admin.admins.index', compact('admins'));
|
return view('admin.admins.index', compact('admins'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
$permissions = Permission::query()
|
$permissions = Permission::orderBy('id')->get();
|
||||||
->orderBy('name')
|
|
||||||
->get();
|
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'admin.admins.create',
|
'admin.admins.create',
|
||||||
@@ -34,6 +31,7 @@ class AdminController extends Controller
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function store(AdminStoreRequest $request)
|
public function store(AdminStoreRequest $request)
|
||||||
{
|
{
|
||||||
$data = $request->validated();
|
$data = $request->validated();
|
||||||
@@ -53,11 +51,10 @@ class AdminController extends Controller
|
|||||||
->with('success', 'مدیر با موفقیت ایجاد شد.');
|
->with('success', 'مدیر با موفقیت ایجاد شد.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function edit(Admin $admin)
|
public function edit(Admin $admin)
|
||||||
{
|
{
|
||||||
$permissions = Permission::query()
|
$permissions = Permission::orderBy('id')->get();
|
||||||
->orderBy('name')
|
|
||||||
->get();
|
|
||||||
|
|
||||||
$admin->load('permissions');
|
$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();
|
$data = $request->validated();
|
||||||
|
|
||||||
$permissions = $data['permissions'] ?? [];
|
$permissions = $data['permissions'] ?? [];
|
||||||
@@ -76,9 +76,15 @@ class AdminController extends Controller
|
|||||||
unset($data['permissions']);
|
unset($data['permissions']);
|
||||||
|
|
||||||
if (!empty($data['password'])) {
|
if (!empty($data['password'])) {
|
||||||
$data['password'] = Hash::make($data['password']);
|
|
||||||
|
$data['password'] = Hash::make(
|
||||||
|
$data['password']
|
||||||
|
);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
unset($data['password']);
|
unset($data['password']);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$admin->update($data);
|
$admin->update($data);
|
||||||
@@ -87,9 +93,10 @@ class AdminController extends Controller
|
|||||||
|
|
||||||
return redirect()
|
return redirect()
|
||||||
->route('admin.admins.index')
|
->route('admin.admins.index')
|
||||||
->with('success', 'اطلاعات مدیر با موفقیت ویرایش شد.');
|
->with('success', 'مدیر با موفقیت ویرایش شد.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function destroy(Admin $admin)
|
public function destroy(Admin $admin)
|
||||||
{
|
{
|
||||||
$admin->permissions()->detach();
|
$admin->permissions()->detach();
|
||||||
|
|||||||
@@ -270,23 +270,26 @@
|
|||||||
|
|
||||||
|
|
||||||
{{-- دسترسیها --}}
|
{{-- دسترسیها --}}
|
||||||
|
|
||||||
<div class="col-xl-4">
|
<div class="col-xl-4">
|
||||||
|
|
||||||
<div class="card custom-card">
|
<div class="card custom-card">
|
||||||
|
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
|
|
||||||
<div>
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<div class="card-title mb-1">
|
||||||
|
سطح دسترسی
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<small class="text-muted">
|
||||||
|
دسترسیهای مدیر را مدیریت کنید.
|
||||||
|
</small>
|
||||||
|
|
||||||
<div class="card-title mb-1">
|
|
||||||
سطح دسترسی
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<small class="text-muted">
|
|
||||||
دسترسیهای مدیر را مدیریت کنید.
|
|
||||||
</small>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -294,59 +297,37 @@
|
|||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
|
||||||
@php
|
@if($permissions->count())
|
||||||
|
|
||||||
$selectedPermissions = old(
|
<div class="d-flex flex-column gap-3">
|
||||||
'permissions',
|
|
||||||
$admin->permissions->pluck('id')->toArray()
|
|
||||||
);
|
|
||||||
|
|
||||||
@endphp
|
@foreach($permissions as $permission)
|
||||||
|
|
||||||
|
<div class="form-check">
|
||||||
|
|
||||||
@error('permissions')
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
class="form-check-input"
|
||||||
|
name="permissions[]"
|
||||||
|
value="{{ $permission->id }}"
|
||||||
|
id="permission_{{ $permission->id }}"
|
||||||
|
{{ $admin->permissions->contains($permission->id) ? 'checked' : '' }}
|
||||||
|
>
|
||||||
|
|
||||||
<div class="alert alert-danger py-2">
|
<label
|
||||||
{{ $message }}
|
class="form-check-label"
|
||||||
</div>
|
for="permission_{{ $permission->id }}"
|
||||||
|
>
|
||||||
|
{{ $permission->name }}
|
||||||
|
</label>
|
||||||
|
|
||||||
@enderror
|
</div>
|
||||||
|
|
||||||
|
@endforeach
|
||||||
@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>
|
</div>
|
||||||
|
|
||||||
@empty
|
@else
|
||||||
|
|
||||||
<div class="text-center text-muted py-4">
|
<div class="text-center text-muted py-4">
|
||||||
|
|
||||||
@@ -356,7 +337,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endforelse
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -364,6 +345,99 @@
|
|||||||
|
|
||||||
</div>
|
</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>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -380,17 +454,17 @@
|
|||||||
<i class="ri-information-line me-1"></i>
|
<i class="ri-information-line me-1"></i>
|
||||||
|
|
||||||
آخرین ویرایش:
|
آخرین ویرایش:
|
||||||
|
|
||||||
@if($admin->updated_at)
|
@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
|
@else
|
||||||
|
|
||||||
-
|
<td>-</td>
|
||||||
|
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -101,13 +101,38 @@
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
{{-- دسترسیها --}}
|
{{-- دسترسیها --}}
|
||||||
<td style="min-width: 200px; max-width: 280px; white-space: normal;">
|
<td>
|
||||||
@forelse($admin->permissions as $permission)
|
|
||||||
<span class="badge bg-primary-subtle text-primary mb-1">{{ $permission->name }}</span>
|
@if($admin->permissions->count())
|
||||||
@empty
|
|
||||||
<span class="text-muted fs-12">بدون دسترسی</span>
|
<div class="d-flex flex-wrap gap-1">
|
||||||
@endforelse
|
|
||||||
|
@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>
|
||||||
|
{{-- <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>
|
<td>
|
||||||
|
|||||||
Reference in New Issue
Block a user