Cost units can be edited
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -22,11 +22,16 @@ final class InertiaProvider
|
||||
}
|
||||
|
||||
public function render() : Response {
|
||||
if (null !== session()->get('message')) {
|
||||
$this->props['message'] = session()->get('message');
|
||||
session()->forget('message');
|
||||
}
|
||||
|
||||
$this->props['availableLocalGroups'] = Tenant::where(['is_active_local_group' => true])->get();
|
||||
|
||||
return Inertia::render(
|
||||
str_replace('/', '/Views/', $this->vueFile),
|
||||
$this->props
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user