Files
onboard/app/Http/Middleware/HandleInertiaRequests.php
brusnitsyn 739168d427 Обновлен стартовый экран
Переписаны запросы для статистики, отчетов
Добавлена интеграция отчета сестры
2026-05-28 22:10:00 +09:00

75 lines
2.3 KiB
PHP

<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Inertia\Middleware;
class HandleInertiaRequests extends Middleware
{
/**
* The root template that's loaded on the first page visit.
*
* @see https://inertiajs.com/server-side-setup#root-template
*
* @var string
*/
protected $rootView = 'app';
/**
* Determines the current asset version.
*
* @see https://inertiajs.com/asset-versioning
*/
public function version(Request $request): ?string
{
return parent::version($request);
}
/**
* Define the props that are shared by default.
*
* @see https://inertiajs.com/shared-data
*
* @return array<string, mixed>
*/
public function share(Request $request): array
{
$user = $request->user() ?? Auth::guard('sanctum')->user();
return [
...parent::share($request),
'flash' => [
'success' => $request->session()->get('success'),
'error' => $request->session()->get('error'),
],
'app' => [
'version' => config('app.version'),
'tag' => config('app.tag'),
],
'config' => [
'timeEventSourceUrl' => config('time.eventSourceUrl'),
],
'user' => $user ? [
'name' => $user->name,
'token' => Session::get('token'),
'permissions' => \Spatie\Permission\Models\Role::findByName($user->currentRole()->slug)?->permissions->pluck('name') ?? collect(),
'role' => $user->currentRole(),
'available_roles' => \App\Models\UserRole::where('rf_user_id', $user->id)
->with('role')
->get()
->map(fn($ur) => [
'role_id' => $ur->role->role_id,
'name' => $ur->role->name,
'slug' => $ur->role->slug,
'is_default' => (bool) $ur->is_default,
]),
'available_departments' => $user->availableDepartments(),
'current_department' => $user->department->load('departmentType'),
] : null,
];
}
}