-
-
- @if ($server->proxySet())
-
-
- @endif
+@php
+ $serverPageItems = [
+ [
+ 'label' => 'Configuration',
+ 'route' => 'server.show',
+ 'active' => request()->routeIs('server.show', 'server.advanced', 'server.private-key', 'server.cloud-provider-token', 'server.ca-certificate', 'server.cloudflare-tunnel', 'server.docker-cleanup', 'server.destinations', 'server.log-drains', 'server.metrics', 'server.swarm', 'server.delete'),
+ ],
+ [
+ 'label' => 'Proxy',
+ 'route' => 'server.proxy',
+ 'active' => request()->routeIs('server.proxy', 'server.proxy.*'),
+ 'visible' => ! $server->isSwarmWorker() && ! $server->settings->is_build_server,
+ ],
+ [
+ 'label' => 'Sentinel',
+ 'route' => 'server.sentinel',
+ 'active' => request()->routeIs('server.sentinel', 'server.sentinel.*'),
+ 'visible' => $server->isFunctional() && ! $server->isSwarm() && ! $server->settings->is_build_server && auth()->user()?->can('viewSentinel', $server),
+ ],
+ [
+ 'label' => 'Resources',
+ 'route' => 'server.resources',
+ 'active' => request()->routeIs('server.resources'),
+ ],
+ [
+ 'label' => 'Terminal',
+ 'route' => 'server.command',
+ 'active' => request()->routeIs('server.command'),
+ 'navigate' => false,
+ 'visible' => auth()->user()?->can('canAccessTerminal'),
+ ],
+ [
+ 'label' => 'Security',
+ 'route' => 'server.security.patches',
+ 'active' => request()->routeIs('server.security.patches'),
+ 'visible' => auth()->user()?->can('update', $server),
+ ],
+ ];
+ $proxyMenuItems = [
+ [
+ 'label' => 'Configuration',
+ 'route' => 'server.proxy',
+ 'active' => request()->routeIs('server.proxy'),
+ ],
+ [
+ 'label' => 'Dynamic Configurations',
+ 'route' => 'server.proxy.dynamic-confs',
+ 'active' => request()->routeIs('server.proxy.dynamic-confs'),
+ 'visible' => $server->proxySet(),
+ ],
+ [
+ 'label' => 'Logs',
+ 'route' => 'server.proxy.logs',
+ 'active' => request()->routeIs('server.proxy.logs'),
+ 'visible' => $server->proxySet(),
+ 'navigate' => false,
+ ],
+ ];
+
+ $serverPageItems = array_values(array_filter(
+ $serverPageItems,
+ fn (array $item): bool => $item['visible'] ?? true,
+ ));
+ $proxyMenuItems = array_values(array_filter(
+ $proxyMenuItems,
+ fn (array $item): bool => $item['visible'] ?? true,
+ ));
+ $activeProxyMenuItem = collect($proxyMenuItems)->firstWhere('active', true) ?? $proxyMenuItems[0];
+ $activeProxyMenuValue = (($activeProxyMenuItem['navigate'] ?? true) ? 'navigate' : 'location').'|proxy|'.route($activeProxyMenuItem['route'], $parameters);
+@endphp
+
+
+
+
+
+
+
+
diff --git a/resources/views/components/server/sidebar-security.blade.php b/resources/views/components/server/sidebar-security.blade.php
index e61d23c89..9e1071854 100644
--- a/resources/views/components/server/sidebar-security.blade.php
+++ b/resources/views/components/server/sidebar-security.blade.php
@@ -1,10 +1,127 @@
-