diff --git a/app/Providers/GlobalDataProvider.php b/app/Providers/GlobalDataProvider.php index bfb3bfa..5383949 100644 --- a/app/Providers/GlobalDataProvider.php +++ b/app/Providers/GlobalDataProvider.php @@ -20,6 +20,13 @@ class GlobalDataProvider { public function __invoke() { $this->user = auth()->user(); + $canAccessAdmin = false; + if (null !== $this->user) { + $authCheck = new AuthCheckProvider(); + $effectiveRole = $authCheck->getUserRole(); + $canAccessAdmin = in_array($effectiveRole, [UserRole::USER_ROLE_ADMIN, UserRole::USER_ROLE_GROUP_LEADER], true); + } + return response()->json([ 'user' => null !== $this->user ? new UserResource($this->user)->toArray(request()) : null, 'navbar' => $this->generateNavbar(), @@ -27,6 +34,7 @@ class GlobalDataProvider { 'activeUsers' => $this->getActiveUsers(), 'version' => config('app.version'), 'currentEvent' => $this->getCurrentEventData(), + 'canAccessAdmin' => $canAccessAdmin, ]); } diff --git a/public/css/app.css b/public/css/app.css index 5194325..acc89c6 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -57,8 +57,8 @@ h1, h2, h3, h4, h5, h6 { .header .user-info { position: relative; - right: calc(-100% + 190px); - width: 195px; + right: calc(-100% + 250px); + width: 240px; overflow: hidden; border-radius: 50px 0 0 50px; text-align: right; @@ -108,11 +108,11 @@ h1, h2, h3, h4, h5, h6 { display: flex; align-items: center; justify-content: center; + height: 180px; } .logo img { - width: 135px !important; - height: 70px !important; + width: 100% !important; } .footer { diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000..149bbee Binary files /dev/null and b/public/favicon.png differ diff --git a/public/images/mareike.png b/public/images/mareike.png new file mode 100644 index 0000000..149bbee Binary files /dev/null and b/public/images/mareike.png differ diff --git a/resources/js/layouts/AdminAppLayout.vue b/resources/js/layouts/AdminAppLayout.vue new file mode 100644 index 0000000..3f3a8f5 --- /dev/null +++ b/resources/js/layouts/AdminAppLayout.vue @@ -0,0 +1,444 @@ + + + + + diff --git a/resources/js/layouts/AppLayout.vue b/resources/js/layouts/AppLayout.vue index 8106e78..4fffb30 100644 --- a/resources/js/layouts/AppLayout.vue +++ b/resources/js/layouts/AppLayout.vue @@ -61,6 +61,8 @@ const showCurrentEventLink = computed(() => { return currentPath !== '/event/details/' + globalProps.currentEvent.identifier; }); +const canAccessAdmin = computed(() => globalProps.canAccessAdmin ?? false); + const props = defineProps({ title: { type: String, default: 'App' }, flash: { type: Object, default: () => ({}) } @@ -99,6 +101,9 @@ const props = defineProps({
+ + + @@ -123,7 +128,7 @@ const props = defineProps({