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); console.log('Error saving config-root:', err.message);
} }
}); });
// mainWindow.webContents.toggleDevTools();
mainWindow.loadURL(startUrl); mainWindow.loadURL(startUrl);
if (os.platform() == 'linux') { if (os.platform() == 'linux') {
mainWindow.setIcon(path.resolve(__dirname, '../icon.png')); mainWindow.setIcon(path.resolve(__dirname, '../icon.png'));
} }
// mainWindow.webContents.toggleDevTools();
mainWindow.on('maximize', () => { mainWindow.on('maximize', () => {
mainWindow.webContents.send('setIsMaximized', true); mainWindow.webContents.send('setIsMaximized', true);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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