Feat: CRUD пользователей
✅ UserController (resource controller) ✅ UserPolicy ✅ Маршруты: /admin/users (resource) ✅ Blade-шаблоны: - admin/users/index.blade.php (с фильтрами) - admin/users/create.blade.php - admin/users/edit.blade.php (с группами) - admin/users/show.blade.php ✅ Ссылка в сайдбаре ✅ Привязка к организациям ✅ Распределение по группам ✅ Управление ролями Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
@extends('layouts.app')
|
||||
@section('title', 'Добавить пользователя')
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<nav class="col-md-3 col-lg-2 d-md-block sidebar">
|
||||
<div class="position-sticky pt-3">@include('partials._sidebar')</div>
|
||||
</nav>
|
||||
<main class="col-md-9 ms-sm-auto col-lg-10 px-md-4 main-content">
|
||||
<div class="d-flex justify-content-between align-items-center pt-3 pb-2 mb-3 border-bottom">
|
||||
<h1 class="h2">Добавить пользователя</h1>
|
||||
<a href="{{ route('admin.users.index') }}" class="btn btn-secondary btn-sm">Назад</a>
|
||||
</div>
|
||||
<form action="{{ route('admin.users.store') }}" method="POST">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card shadow-sm mb-3">
|
||||
<div class="card-body">
|
||||
<h5>Основная информация</h5>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Имя *</label>
|
||||
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror" value="{{ old('name') }}" required>
|
||||
@error('name')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Email *</label>
|
||||
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" value="{{ old('email') }}" required>
|
||||
@error('email')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Пароль *</label>
|
||||
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror" required>
|
||||
@error('password')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Подтверждение пароля *</label>
|
||||
<input type="password" name="password_confirmation" class="form-control" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="card shadow-sm mb-3">
|
||||
<div class="card-body">
|
||||
<h5>Настройки</h5>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Организация</label>
|
||||
<select name="organization_id" class="form-select">
|
||||
<option value="">Без организации</option>
|
||||
@foreach($organizations as $id => $name)
|
||||
<option value="{{ $id }}" {{ old('organization_id') == $id ? 'selected' : '' }}>{{ $name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Роль *</label>
|
||||
<select name="role" class="form-select">
|
||||
@foreach($roles as $role)
|
||||
<option value="{{ $role }}" {{ old('role') == $role ? 'selected' : '' }}>{{ $role }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@error('role')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Телефон</label>
|
||||
<input type="tel" name="phone" class="form-control" value="{{ old('phone') }}">
|
||||
</div>
|
||||
<div class="form-check mb-3">
|
||||
<input type="checkbox" name="is_active" value="1" class="form-check-input" {{ old('is_active', true) ? 'checked' : '' }}>
|
||||
<label class="form-check-label">Активен</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary"><i class="bi bi-check-lg"></i> Создать</button>
|
||||
<a href="{{ route('admin.users.index') }}" class="btn btn-secondary">Отмена</a>
|
||||
</form>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user