Cost units can be edited

This commit is contained in:
2026-02-08 20:06:38 +01:00
parent 6fc65e195c
commit bccfc11687
53 changed files with 2021 additions and 29 deletions

View File

@@ -2,9 +2,8 @@
namespace App\Providers;
use App\Models\Tenant;
use App\Enumerations\UserRole;
use App\Models\User;
use App\Repositories\UserRepository;
use App\Resources\UserResource;
class GlobalDataProvider {
@@ -14,10 +13,10 @@ class GlobalDataProvider {
$this->user = auth()->user();
return response()->json([
'user' => null !== $this->user ? new UserResource($this->user)->toArray(request()) : [],
'user' => null !== $this->user ? new UserResource($this->user)->toArray(request()) : null,
'navbar' => $this->generateNavbar(),
'tenant' => app('tenant'),
'availableLocalGroups' => Tenant::where(['is_active_local_group' => true])->get(),
'activeUsers' => $this->getActiveUsers(),
]);
}
@@ -34,8 +33,13 @@ class GlobalDataProvider {
$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'];
if (
in_array($this->user->user_role_local_group, [UserRole::USER_ROLE_ADMIN, UserRole::USER_ROLE_GROUP_LEADER] ) ||
$this->user->user_role_main === UserRole::USER_ROLE_ADMIN
) {
$navigation['costunits'][] = ['url' => '/cost-unit/list', 'display' => 'Kostenstellen'];
$navigation['costunits'][] = ['url' => '/cost-unit/create', 'display' => 'Neue laufende Tätigkeit'];
}
}
$navigation['common'][] = ['url' => '/capture-invoice', 'display' => 'Neue Abrechnung'];
@@ -43,4 +47,22 @@ class GlobalDataProvider {
return $navigation;
}
private function getActiveUsers() : array {
$activeUsers = [];
$conditions = ['active' => true];
if (app('tenant')->slug !== 'lv') {
$conditions['local_group'] = app('tenant')->slug;
}
foreach ($rawUsers = User::where($conditions)->get() as $user) {
$userResource = new UserResource($user);
$activeUsers[] = $userResource->getReducedData();
}
return $activeUsers;
}
}