API-Route to new global variables

This commit is contained in:
2026-02-05 09:18:24 +01:00
parent e9ae850002
commit 6fc65e195c
8 changed files with 108 additions and 65 deletions

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Providers;
use App\Models\Tenant;
use App\Models\User;
use App\Repositories\UserRepository;
use App\Resources\UserResource;
class GlobalDataProvider {
private ?User $user;
public function __invoke() {
$this->user = auth()->user();
return response()->json([
'user' => null !== $this->user ? new UserResource($this->user)->toArray(request()) : [],
'navbar' => $this->generateNavbar(),
'tenant' => app('tenant'),
'availableLocalGroups' => Tenant::where(['is_active_local_group' => true])->get(),
]);
}
private function generateNavbar() : array {
$navigation = [
'personal' => [],
'common' => [],
'costunits' => [],
'events' => [],
];
$navigation['personal'][] = ['url' => '/', 'display' => 'Home'];
if (null !== $this->user) {
$navigation['personal'][] = ['url' => '/personal-data', 'display' => 'Meine Daten'];
$navigation['personal'][] = ['url' => '/messages', 'display' => 'Meine Nachrichten'];
$navigation['costunits'][] = ['url' => '/cost-unit/create', 'display' => 'Neue laufende Tätigkeit'];
}
$navigation['common'][] = ['url' => '/capture-invoice', 'display' => 'Neue Abrechnung'];
$navigation['common'][] = ['url' => '/available-events', 'display' => 'Verfügbare Veranstaltungen'];
return $navigation;
}
}