/
marklis
/
transport
Обзор
Документация
Войти
/
marklis
/
transport
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/Http/Controllers/UserController.php
104 строки
3 KB
Мамонов Алексей Анатольевич
Почта подрядчика персональная у каждого пользователя
11 фев 2025, 16:58
11 фев 2025, 16:58
b391f4b
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Contracts\Services\{UserServiceContract as Service, RoleServiceContract, TimezoneServiceContract}; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Inertia\{Inertia, Response as InertiaResponse}; use Symfony\Component\HttpFoundation\RedirectResponse; class UserController extends BaseController { protected Service $service; protected RoleServiceContract $roleService; protected TimezoneServiceContract $timezoneService; public function __construct( Service $service, RoleServiceContract $roleService, TimezoneServiceContract $timezoneService ) { $this->service = $service; $this->roleService = $roleService; $this->timezoneService = $timezoneService; } public function index(): InertiaResponse { return Inertia::render('Users/Index', [ 'rights' => $this->getRights(), 'users' => $this->service->get(), 'routes' => [ 'edit' => route('users.edit') ] ]); } public function show(): InertiaResponse { return Inertia::render('Users/Show', [ 'user' => Auth::user(), 'rights' => $this->getRights(), 'routes' => [ 'edit' => route('users.edit') ] ]); } public function create(): InertiaResponse { return Inertia::render('Users/Create', [ 'roles' => $this->roleService->get(), 'timezones' => $this->timezoneService->get([], [], 'hours'), 'rights' => $this->getRights() ]); } public function store(Request $request): RedirectResponse { $request->validate([ 'login' => 'required|string|max:255|unique:users', 'password' => 'required|string|max:255', ]); $this->service->create($request->collect()); return redirect(route('users.index')); } public function edit(Request $request): InertiaResponse { return Inertia::render('Users/Edit', [ 'model' => $this->service->find([], ['id' => $request->input('id')]), 'roles' => $this->roleService->get(), 'timezones' => $this->timezoneService->get([], [], 'hours'), 'rights' => $this->getRights() ]); } public function update(Request $request): RedirectResponse { $request->validate([ 'login' => 'required|string|max:255', 'password' => 'required|string|max:255', ]); $this->service->update($request->collect()); return redirect(route('users.index')); } public function updateSettings(Request $request): RedirectResponse { $this->service->updateSettings($request->collect()); return redirect(route('trips.index')); } public function destroy(Request $request): void { $this->service->delete($request->input('id')); } }