error page handling fixes

This commit is contained in:
Jan Prochazka
2024-08-06 14:59:09 +02:00
parent 399298d3bb
commit a7444a1475
7 changed files with 31 additions and 27 deletions

View File

@@ -365,11 +365,13 @@ function createWindow() {
console.log('Error saving config-root:', err.message);
}
});
// mainWindow.webContents.toggleDevTools();
mainWindow.loadURL(startUrl);
if (os.platform() == 'linux') {
mainWindow.setIcon(path.resolve(__dirname, '../icon.png'));
}
// mainWindow.webContents.toggleDevTools();
mainWindow.on('maximize', () => {
mainWindow.webContents.send('setIsMaximized', true);

View File

@@ -27,7 +27,7 @@ class AuthProviderBase {
}
isUserLoggedIn(req) {
return !!req.user || !!req.auth;
return !!req?.user || !!req?.auth;
}
getCurrentPermissions(req) {

View File

@@ -3,6 +3,7 @@
import { useConfig } from './utility/metadataLoaders';
import ErrorInfo from './elements/ErrorInfo.svelte';
import Link from './elements/Link.svelte';
import { internalRedirectTo } from './clientAuth';
const config = useConfig();
@@ -23,7 +24,7 @@
</div>
<div class="box">
<div class="heading">Configuration error</div>
{#if !$config?.isLicenseValid}
{#if $config?.isLicenseValid == false}
<ErrorInfo
message={`Invalid license. Please contact sales@dbgate.eu for more details. ${$config?.licenseError}`}
/>
@@ -32,7 +33,7 @@
{:else}
<ErrorInfo message="No error found, try to open app again" />
<div class="m-2">
<Link href="?">Back to app</Link>
<Link onClick={() => internalRedirectTo('/')}>Back to app</Link>
</div>
{/if}
</div>

View File

@@ -106,7 +106,7 @@
// }`
// );
internalRedirectTo(
`connections/dblogin?conid=${selectedConnection?.conid}&state=${encodeURIComponent(state)}&redirectUri=${
`/connections/dblogin?conid=${selectedConnection?.conid}&state=${encodeURIComponent(state)}&redirectUri=${
location.origin + location.pathname
}`
);
@@ -130,7 +130,7 @@
isTesting = false;
if (resp.accessToken) {
localStorage.setItem('accessToken', resp.accessToken);
internalRedirectTo('?');
internalRedirectTo('/');
} else {
sqlConnectResult = resp;
}
@@ -140,7 +140,7 @@
conid: selectedConnection.conid,
});
localStorage.setItem('accessToken', resp.accessToken);
internalRedirectTo('?');
internalRedirectTo('/');
}
}}
/>
@@ -155,7 +155,7 @@
});
if (resp.error) {
internalRedirectTo(
`?page=not-logged&error=${encodeURIComponent(resp.error)}&is-admin=${isAdminPage ? 'true' : ''}`
`/?page=not-logged&error=${encodeURIComponent(resp.error)}&is-admin=${isAdminPage ? 'true' : ''}`
);
return;
}
@@ -163,13 +163,13 @@
if (accessToken) {
localStorage.setItem(isAdminPage ? 'adminAccessToken' : 'accessToken', accessToken);
if (isAdminPage) {
internalRedirectTo('?page=admin');
internalRedirectTo('/?page=admin');
} else {
internalRedirectTo('?');
internalRedirectTo('/');
}
return;
}
internalRedirectTo(`?page=not-logged`);
internalRedirectTo(`/?page=not-logged`);
}}
/>
{/if}

View File

@@ -50,10 +50,10 @@ export function handleOauthCallback() {
if (accessToken) {
console.log('Settings access token from OAUTH');
localStorage.setItem('accessToken', accessToken);
internalRedirectTo('?');
internalRedirectTo('/');
} else {
console.log('Error when processing OAUTH callback', error || errorMessage);
internalRedirectTo(`?page=not-logged&error=${error || errorMessage}`);
internalRedirectTo(`/?page=not-logged&error=${error || errorMessage}`);
}
});
@@ -73,9 +73,9 @@ export function handleOauthCallback() {
if (authResp.success) {
window.close();
} else if (authResp.error) {
internalRedirectTo(`?page=error&error=${encodeURIComponent(authResp.error)}`);
internalRedirectTo(`/?page=error&error=${encodeURIComponent(authResp.error)}`);
} else {
internalRedirectTo(`?page=error`);
internalRedirectTo(`/?page=error`);
}
});
@@ -93,11 +93,11 @@ export function handleOauthCallback() {
}).then(authResp => {
if (authResp.accessToken) {
localStorage.setItem('accessToken', authResp.accessToken);
internalRedirectTo('?');
internalRedirectTo('/');
} else if (authResp.error) {
internalRedirectTo(`?page=error&error=${encodeURIComponent(authResp.error)}`);
internalRedirectTo(`/?page=error&error=${encodeURIComponent(authResp.error)}`);
} else {
internalRedirectTo(`?page=error`);
internalRedirectTo(`/?page=error`);
}
});
@@ -109,7 +109,7 @@ export function handleOauthCallback() {
export async function handleAuthOnStartup(config, isAdminPage = false) {
if (!config.isLicenseValid) {
internalRedirectTo(`?page=error`);
internalRedirectTo(`/?page=error`);
return;
}
@@ -135,7 +135,7 @@ export async function handleAuthOnStartup(config, isAdminPage = false) {
}
export async function redirectToAdminLogin() {
internalRedirectTo('?page=admin-login');
internalRedirectTo('/?page=admin-login');
return;
}
@@ -152,7 +152,7 @@ export async function redirectToLogin(config = null, force = false) {
return;
}
}
internalRedirectTo('?page=login');
internalRedirectTo('/?page=login');
return;
}
@@ -184,14 +184,14 @@ export async function doLogout() {
if (config.oauthLogout) {
window.location.href = config.oauthLogout;
} else {
internalRedirectTo('?page=not-logged');
internalRedirectTo('/?page=not-logged');
}
} else if (config.isLoginForm) {
localStorage.removeItem(isAdminPage() ? 'adminAccessToken' : 'accessToken');
internalRedirectTo(`?page=not-logged&is-admin=${isAdminPage() ? 'true' : ''}`);
internalRedirectTo(`/?page=not-logged&is-admin=${isAdminPage() ? 'true' : ''}`);
} else if (config.isAdminLoginForm && isAdminPage()) {
localStorage.removeItem('adminAccessToken');
internalRedirectTo('?page=admin-login&is-admin=true');
internalRedirectTo('/?page=admin-login&is-admin=true');
} else {
window.location.href = 'config/logout';
}

View File

@@ -8,13 +8,14 @@ import LoginPage from './LoginPage.svelte';
import NotLoggedPage from './NotLoggedPage.svelte';
import ErrorPage from './ErrorPage.svelte';
const isOauthCallback = handleOauthCallback();
const params = new URLSearchParams(location.search);
const page = params.get('page');
const isOauthCallback = handleOauthCallback();
localStorageGarbageCollector();
function createApp() {
if (isOauthCallback) {
return null;

View File

@@ -16,7 +16,7 @@ import { batchDispatchCacheTriggers, dispatchCacheChange } from './cache';
export const strmid = uuidv1();
let eventSource;
let apiLogging = false;
let apiLogging = true;
// let cacheCleanerRegistered;
let apiDisabled = false;
const disabledOnOauth = isOauthCallback();