feat(admin): add admin creation with permissions

This commit is contained in:
2026-08-19 18:23:21 +03:30
parent 407a3e1bec
commit 9d5e325c3f
20 changed files with 2324 additions and 75 deletions
@@ -0,0 +1,537 @@
<?php $__env->startSection('breadcrumb'); ?>
<div>
<h1 class="page-title fw-medium fs-18 mb-2">
افزودن مدیر جدید
</h1>
<div>
<nav>
<ol class="breadcrumb mb-0">
<li class="breadcrumb-item">
<a href="<?php echo e(route('admin.admins.index')); ?>">
مدیران
</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
افزودن مدیر
</li>
</ol>
</nav>
</div>
</div>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('content'); ?>
<div class="container-fluid pt-4">
<div class="row">
<?php if(session('success')): ?>
<div class="alert alert-success">
<?php echo e(session('success')); ?>
</div>
<?php endif; ?>
<?php if(session('error')): ?>
<div class="alert alert-danger">
<?php echo e(session('error')); ?>
</div>
<?php endif; ?>
<div class="col-xl-12">
<form
action="<?php echo e(route('admin.admins.store')); ?>"
method="POST"
enctype="multipart/form-data"
>
<?php echo csrf_field(); ?>
<div class="card custom-card">
<div class="card-header">
<div class="card-title">
ایجاد مدیر
</div>
</div>
<div class="card-body">
<div class="row gy-3">
<div class="col-xl-6">
<label class="form-label">
نام
</label>
<input
type="text"
class="form-control"
name="first_name"
value="<?php echo e(old('first_name')); ?>"
placeholder="نام را وارد کنید"
>
<?php $__errorArgs = ['first_name'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<span class="text-danger">
<?php echo e($message); ?>
</span>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="col-xl-6">
<label class="form-label">
نام خانوادگی
</label>
<input
type="text"
class="form-control"
name="last_name"
value="<?php echo e(old('last_name')); ?>"
placeholder="نام خانوادگی را وارد کنید"
>
<?php $__errorArgs = ['last_name'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<span class="text-danger">
<?php echo e($message); ?>
</span>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="col-xl-6">
<label class="form-label">
نام کاربری
</label>
<input
type="text"
class="form-control"
name="username"
value="<?php echo e(old('username')); ?>"
placeholder="نام کاربری را وارد کنید"
>
<?php $__errorArgs = ['username'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<span class="text-danger">
<?php echo e($message); ?>
</span>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="col-xl-6">
<label class="form-label">
ایمیل
</label>
<input
type="email"
class="form-control"
name="email"
value="<?php echo e(old('email')); ?>"
placeholder="ایمیل را وارد کنید"
>
<?php $__errorArgs = ['email'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<span class="text-danger">
<?php echo e($message); ?>
</span>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="col-xl-6">
<label class="form-label">
شماره موبایل
</label>
<input
type="text"
class="form-control"
name="mobile"
value="<?php echo e(old('mobile')); ?>"
placeholder="شماره موبایل را وارد کنید"
>
<?php $__errorArgs = ['mobile'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<span class="text-danger">
<?php echo e($message); ?>
</span>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="col-xl-6">
<label class="form-label">
رمز عبور
</label>
<input
type="password"
class="form-control"
name="password"
placeholder="رمز عبور را وارد کنید"
>
<?php $__errorArgs = ['password'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<span class="text-danger">
<?php echo e($message); ?>
</span>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="col-xl-6">
<label class="form-label">
نقش مدیر
</label>
<select
class="form-control"
name="role"
>
<?php $__currentLoopData = \App\Enums\Admin\AdminRole::cases(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $role): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option
value="<?php echo e($role->value); ?>"
<?php if(
old('role') == $role->value
): echo 'selected'; endif; ?>
>
<?php echo e($role->label()); ?>
</option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</select>
<?php $__errorArgs = ['role'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<span class="text-danger">
<?php echo e($message); ?>
</span>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="col-xl-6">
<label class="form-label">
وضعیت
</label>
<select
class="form-control"
name="status"
>
<?php $__currentLoopData = \App\Enums\Admin\AdminStatus::cases(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $status): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option
value="<?php echo e($status->value); ?>"
<?php if(
old(
'status',
\App\Enums\Admin\AdminStatus::ACTIVE->value
) == $status->value
): echo 'selected'; endif; ?>
>
<?php echo e($status->label()); ?>
</option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</select>
<?php $__errorArgs = ['status'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<span class="text-danger">
<?php echo e($message); ?>
</span>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
</div>
<div class="mt-4">
<div class="card custom-card">
<div class="card-header">
<div class="card-title">
سطح دسترسی
</div>
</div>
<div class="card-body">
<div class="row gy-3">
<?php $__currentLoopData = \App\Enums\Admin\AdminPermission::cases(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $permission): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<div class="col-xl-3 col-lg-4 col-md-6">
<div class="form-check">
<input
class="form-check-input"
type="checkbox"
name="permissions[]"
value="<?php echo e($permission->value); ?>"
id="permission_<?php echo e($permission->value); ?>"
<?php if(
in_array(
$permission->value,
old('permissions', [])
)
): echo 'checked'; endif; ?>
>
<label
class="form-check-label"
for="permission_<?php echo e($permission->value); ?>"
>
<?php echo e($permission->label()); ?>
</label>
</div>
</div>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</div>
<?php $__errorArgs = ['permissions'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<div class="mt-2">
<span class="text-danger">
<?php echo e($message); ?>
</span>
</div>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
<?php $__errorArgs = ['permissions.*'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<div class="mt-2">
<span class="text-danger">
<?php echo e($message); ?>
</span>
</div>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
</div>
</div>
<div class="card-avatar mt-4">
<div class="text-center">
<label class="form-label d-block fw-semibold">
تصویر پروفایل
</label>
<label
class="avatar-picker"
id="avatarPreview"
style="
background-image:
url('<?php echo e(asset('assets/admin/images/faces/DefaultAvatar.jpg')); ?>')
"
>
<input
type="file"
name="image"
accept="image/*"
onchange="previewAvatar(this)"
>
</label>
</div>
</div>
<?php $__errorArgs = ['image'];
$__bag = $errors->getBag($__errorArgs[1] ?? 'default');
if ($__bag->has($__errorArgs[0])) :
if (isset($message)) { $__messageOriginal = $message; }
$message = $__bag->first($__errorArgs[0]); ?>
<div class="mt-2">
<span class="text-danger">
<?php echo e($message); ?>
</span>
</div>
<?php unset($message);
if (isset($__messageOriginal)) { $message = $__messageOriginal; }
endif;
unset($__errorArgs, $__bag); ?>
</div>
<div class="card-footer text-end">
<a
href="<?php echo e(route('admin.admins.index')); ?>"
class="btn btn-light"
>
انصراف
</a>
<button
type="submit"
class="btn btn-primary"
>
ثبت اطلاعات
</button>
</div>
</div>
</form>
</div>
</div>
</div>
<?php $__env->stopSection(); ?>
<?php $__env->startPush('scripts'); ?>
<script>
function previewAvatar(input) {
const preview = document.getElementById('avatarPreview');
if (input.files && input.files[0]) {
const reader = new FileReader();
reader.onload = function (e) {
preview.style.backgroundImage =
`url('${e.target.result}')`;
};
reader.readAsDataURL(input.files[0]);
}
}
</script>
<?php $__env->stopPush(); ?>
<?php echo $__env->make('admin.layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?><?php /**PATH C:\Users\ASUS\Desktop\airline-agency\resources\views/admin/admins/create.blade.php ENDPATH**/ ?>