diff --git a/packages/tools/src/testPermission.ts b/packages/tools/src/testPermission.ts index ee679b912..5727d726f 100644 --- a/packages/tools/src/testPermission.ts +++ b/packages/tools/src/testPermission.ts @@ -101,7 +101,7 @@ export function testSubPermission( export function getPredefinedPermissions(predefinedRoleName: string) { switch (predefinedRoleName) { case 'superadmin': - return ['*', '~widgets/*', 'widgets/admin', '~all-connections']; + return ['*', '~widgets/*', 'widgets/admin', 'widgets/database', '~all-connections']; case 'logged-user': return ['*', '~widgets/admin', '~admin/*', '~internal-storage', '~all-connections']; case 'anonymous-user': diff --git a/packages/web/src/clientAuth.ts b/packages/web/src/clientAuth.ts index 8f3c0941e..02f067aa2 100644 --- a/packages/web/src/clientAuth.ts +++ b/packages/web/src/clientAuth.ts @@ -117,6 +117,9 @@ export async function doLogout() { } else if (config.isLoginForm) { localStorage.removeItem(isAdminPage() ? 'adminAccessToken' : 'accessToken'); internalRedirectTo(`?page=not-logged&is-admin=${isAdminPage() ? 'true' : ''}`); + } else if (config.isAdminLoginForm && isAdminPage()) { + localStorage.removeItem('adminAccessToken'); + internalRedirectTo('?page=admin-login&is-admin=true'); } else { window.location.href = 'config/logout'; } diff --git a/packages/web/src/stores.ts b/packages/web/src/stores.ts index 1a4995a30..202f23989 100644 --- a/packages/web/src/stores.ts +++ b/packages/web/src/stores.ts @@ -73,7 +73,10 @@ function subscribeCssVariable(store, transform, cssVariable) { store.subscribe(value => document.documentElement.style.setProperty(cssVariable, transform(value))); } -export const selectedWidget = writableWithStorage('database', isAdminPage() ? 'selectedAdminWidget' : 'selectedWidget'); +export const selectedWidget = writableWithStorage( + isAdminPage() ? 'admin' : 'database', + isAdminPage() ? 'selectedAdminWidget' : 'selectedWidget' +); export const lockedDatabaseMode = writableWithStorage(false, 'lockedDatabaseMode'); export const visibleWidgetSideBar = writableWithStorage(true, 'visibleWidgetSideBar'); export const visibleSelectedWidget = derived(