Skip to content

Commit 0c7f96b

Browse files
committed
Update App.svelte
1 parent c793f57 commit 0c7f96b

1 file changed

Lines changed: 7 additions & 26 deletions

File tree

warpgate-web/src/admin/App.svelte

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@
3636
3737
async function init() {
3838
await reloadServerInfo()
39-
if (!get(serverInfo)?.username) {
39+
const adminPermissions = get(serverInfo)?.adminPermissions
40+
if (
41+
!get(serverInfo)?.username ||
42+
!adminPermissions ||
43+
!ADMIN_PERMISSIONS.some(p => adminPermissions[p.key])
44+
) {
4045
// Not logged in: redirect to the (gateway) login page, preserving this admin
4146
// URL — hash route included — as `next` so we return exactly here afterwards.
4247
// (The admin shell is no longer server-gated, so this runs client-side where
@@ -45,70 +50,46 @@
4550
location.assign(
4651
`/@warpgate#/login?next=${encodeURIComponent(next)}`,
4752
)
53+
await new Promise(() => undefined)
4854
}
4955
}
5056
5157
const initPromise = init()
5258
53-
async function requireAdmin(detail: RouteDetail) {
54-
await initPromise
55-
const adminPermissions = get(serverInfo)?.adminPermissions
56-
if (
57-
!adminPermissions ||
58-
!ADMIN_PERMISSIONS.some(p => adminPermissions[p.key])
59-
) {
60-
let url = `${location.pathname}#${detail.location}`
61-
if (detail.querystring) {
62-
url += `?${detail.querystring}`
63-
}
64-
push(`/login?next=${encodeURIComponent(url)}`)
65-
return false
66-
}
67-
return true
68-
}
69-
7059
const routes: Record<string, WrappedComponent> = {
7160
'/': wrap({
7261
component: Redirect,
7362
props: { to: '/status/sessions' },
74-
conditions: [requireAdmin],
7563
}),
7664
'/status/recordings/:id': wrap({
7765
asyncComponent: () => import('./status/Recording.svelte'),
78-
conditions: [requireAdmin],
7966
}),
8067
'/status': wrap({
8168
asyncComponent: () => import('./status/Status.svelte'),
82-
conditions: [requireAdmin],
8369
}),
8470
'/log': wrap({
8571
asyncComponent: () => import('./Log.svelte'),
86-
conditions: [requireAdmin],
8772
}),
8873
'/log/user/:id': wrap({
8974
asyncComponent: () => import('./Log.svelte'),
9075
props: {
9176
filterKind: 'user',
9277
},
93-
conditions: [requireAdmin],
9478
}),
9579
'/log/access-role/:id': wrap({
9680
asyncComponent: () => import('./Log.svelte'),
9781
props: {
9882
filterKind: 'access-role',
9983
},
100-
conditions: [requireAdmin],
10184
}),
10285
'/log/admin-role/:id': wrap({
10386
asyncComponent: () => import('./Log.svelte'),
10487
props: {
10588
filterKind: 'admin-role',
10689
},
107-
conditions: [requireAdmin],
10890
}),
10991
'/config': wrap({
11092
asyncComponent: () => import('./config/Config.svelte'),
111-
conditions: [requireAdmin],
11293
}),
11394
}
11495
// biome-ignore lint/style/noNonNullAssertion: x

0 commit comments

Comments
 (0)