Files
compras/app/Http/Middleware/HandleInertiaRequests.php
T
nala c6373365bf
tests / ci (push) Canceled after 0s
commit9
2026-10-30 20:02:30 +02:00

66 lines
2.1 KiB
PHP

<?php
namespace App\Http\Middleware;
use App\Models\User;
use App\Services\OrganizationAccess;
use App\Services\SupplierPayables;
use Illuminate\Http\Request;
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
{
if ($request->is('candidaturas/*')) {
return [...parent::share($request), 'name' => 'SGC', 'auth' => ['user' => null], 'canRequest' => false,
'organizationAccess' => null, 'payablesAvailable' => false, 'sidebarOpen' => false];
}
$actor = $request->user('web');
$actor = $actor instanceof User ? $actor : null;
return [
...parent::share($request),
'name' => config('app.name'),
'canRequest' => $actor !== null && app(OrganizationAccess::class)->canRequest($actor),
'auth' => [
'user' => $actor,
],
'organizationAccess' => $actor === null ? null : [
'permissions' => app(OrganizationAccess::class)->permissions($actor),
'active' => app(OrganizationAccess::class)->active($actor->tenant_id),
'profileLabel' => app(OrganizationAccess::class)->profileLabel($actor),
],
'payablesAvailable' => $actor !== null && app(SupplierPayables::class)->can($actor, 'view'),
'sidebarOpen' => ! $request->hasCookie('sidebar_state') || $request->cookie('sidebar_state') === 'true',
];
}
}