mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-25 01:45:59 +00:00
admin page workflow
This commit is contained in:
@@ -6,10 +6,11 @@ for (const page of [
|
|||||||
'',
|
'',
|
||||||
'not-logged',
|
'not-logged',
|
||||||
'error',
|
'error',
|
||||||
'admin-login',
|
|
||||||
'login',
|
'login',
|
||||||
|
'admin-login',
|
||||||
'admin',
|
'admin',
|
||||||
'license',
|
'license',
|
||||||
|
'admin-license',
|
||||||
'set-admin-password',
|
'set-admin-password',
|
||||||
'redirect',
|
'redirect',
|
||||||
]) {
|
]) {
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
import SpecialPageLayout from './widgets/SpecialPageLayout.svelte';
|
import SpecialPageLayout from './widgets/SpecialPageLayout.svelte';
|
||||||
import hasPermission from './utility/hasPermission';
|
import hasPermission from './utility/hasPermission';
|
||||||
import ErrorInfo from './elements/ErrorInfo.svelte';
|
import ErrorInfo from './elements/ErrorInfo.svelte';
|
||||||
|
import { isOneOfPage } from './utility/pageDefs';
|
||||||
|
|
||||||
const config = useConfig();
|
const config = useConfig();
|
||||||
const values = writable({ amoid: null, databaseServer: null });
|
const values = writable({ amoid: null, databaseServer: null });
|
||||||
@@ -45,7 +46,7 @@
|
|||||||
const { licenseKey } = e.detail;
|
const { licenseKey } = e.detail;
|
||||||
const resp = await apiCall('config/save-license-key', { licenseKey });
|
const resp = await apiCall('config/save-license-key', { licenseKey });
|
||||||
if (resp?.status == 'ok') {
|
if (resp?.status == 'ok') {
|
||||||
internalRedirectTo('/index.html');
|
internalRedirectTo(isOneOfPage('admin-license') ? '/admin.html' : '/index.html');
|
||||||
} else {
|
} else {
|
||||||
errorMessage = resp?.errorMessage || 'Error saving license key';
|
errorMessage = resp?.errorMessage || 'Error saving license key';
|
||||||
}
|
}
|
||||||
@@ -62,7 +63,7 @@
|
|||||||
const license = await apiCall('config/start-trial');
|
const license = await apiCall('config/start-trial');
|
||||||
if (license?.status == 'ok') {
|
if (license?.status == 'ok') {
|
||||||
sessionStorage.setItem('continueTrialConfirmed', '1');
|
sessionStorage.setItem('continueTrialConfirmed', '1');
|
||||||
internalRedirectTo('/index.html');
|
internalRedirectTo(isOneOfPage('admin-license') ? '/admin.html' : '/index.html');
|
||||||
} else {
|
} else {
|
||||||
errorMessage = license?.errorMessage || 'Error starting trial';
|
errorMessage = license?.errorMessage || 'Error starting trial';
|
||||||
}
|
}
|
||||||
@@ -77,7 +78,7 @@
|
|||||||
value={`Continue trial (${trialDaysLeft} days left)`}
|
value={`Continue trial (${trialDaysLeft} days left)`}
|
||||||
on:click={async e => {
|
on:click={async e => {
|
||||||
sessionStorage.setItem('continueTrialConfirmed', '1');
|
sessionStorage.setItem('continueTrialConfirmed', '1');
|
||||||
internalRedirectTo('/index.html');
|
internalRedirectTo(isOneOfPage('admin-license') ? '/admin.html' : '/index.html');
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -129,7 +129,11 @@ export async function handleAuthOnStartup(config) {
|
|||||||
function checkInvalidLicense() {
|
function checkInvalidLicense() {
|
||||||
if (!config.isLicenseValid) {
|
if (!config.isLicenseValid) {
|
||||||
if (config.storageDatabase || getElectron()) {
|
if (config.storageDatabase || getElectron()) {
|
||||||
|
if (isAdminPage()) {
|
||||||
|
internalRedirectTo(`/admin-license.html`);
|
||||||
|
} else {
|
||||||
internalRedirectTo(`/license.html`);
|
internalRedirectTo(`/license.html`);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
internalRedirectTo(`/error.html`);
|
internalRedirectTo(`/error.html`);
|
||||||
}
|
}
|
||||||
@@ -185,7 +189,7 @@ export async function handleAuthOnStartup(config) {
|
|||||||
if (page == 'login' || page == 'admin-login' || page == 'not-logged') return;
|
if (page == 'login' || page == 'admin-login' || page == 'not-logged') return;
|
||||||
if (checkLoggedUser()) return;
|
if (checkLoggedUser()) return;
|
||||||
|
|
||||||
if (page == 'license') return;
|
if (page == 'license' || page == 'admin-license') return;
|
||||||
if (checkTrialDaysLeft()) return;
|
if (checkTrialDaysLeft()) return;
|
||||||
if (checkInvalidLicense()) return;
|
if (checkInvalidLicense()) return;
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ function createApp() {
|
|||||||
props: {},
|
props: {},
|
||||||
});
|
});
|
||||||
case 'license':
|
case 'license':
|
||||||
|
case 'admin-license':
|
||||||
return new EnterLicensePage({
|
return new EnterLicensePage({
|
||||||
target: document.body,
|
target: document.body,
|
||||||
props: {},
|
props: {},
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import uuidv1 from 'uuid/v1';
|
|||||||
import { openWebLink } from './exportFileTools';
|
import { openWebLink } from './exportFileTools';
|
||||||
import { callServerPing } from './connectionsPinger';
|
import { callServerPing } from './connectionsPinger';
|
||||||
import { batchDispatchCacheTriggers, dispatchCacheChange } from './cache';
|
import { batchDispatchCacheTriggers, dispatchCacheChange } from './cache';
|
||||||
import { isAdminPage } from './pageDefs';
|
import { isAdminPage, isOneOfPage } from './pageDefs';
|
||||||
|
|
||||||
export const strmid = uuidv1();
|
export const strmid = uuidv1();
|
||||||
|
|
||||||
@@ -282,7 +282,7 @@ export function getAuthCategory(config) {
|
|||||||
if (config.isBasicAuth) {
|
if (config.isBasicAuth) {
|
||||||
return 'basic';
|
return 'basic';
|
||||||
}
|
}
|
||||||
if (isAdminPage() && config.isAdminLoginForm) {
|
if (isOneOfPage('admin', 'admin-license') && config.isAdminLoginForm) {
|
||||||
return 'admin';
|
return 'admin';
|
||||||
}
|
}
|
||||||
if (getElectron()) {
|
if (getElectron()) {
|
||||||
|
|||||||
@@ -20,5 +20,5 @@ export function subscribePermissionCompiler() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function setConfigForPermissions(config) {
|
export function setConfigForPermissions(config) {
|
||||||
compiled = compilePermissions(config?.permissions || {});
|
compiled = compilePermissions(config?.permissions || []);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,10 @@ export function isAdminPage() {
|
|||||||
return window['dbgate_page'] == 'admin';
|
return window['dbgate_page'] == 'admin';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isOneOfPage(...pages) {
|
||||||
|
return pages.includes(window['dbgate_page']);
|
||||||
|
}
|
||||||
|
|
||||||
export function getOpenedTabsStorageName() {
|
export function getOpenedTabsStorageName() {
|
||||||
return isAdminPage() ? 'adminOpenedTabs' : 'openedTabs';
|
return isAdminPage() ? 'adminOpenedTabs' : 'openedTabs';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import getElectron from './getElectron';
|
import getElectron from './getElectron';
|
||||||
import { isAdminPage } from './pageDefs';
|
import { isAdminPage, isOneOfPage } from './pageDefs';
|
||||||
|
|
||||||
let apiUrl = null;
|
let apiUrl = null;
|
||||||
try {
|
try {
|
||||||
@@ -17,7 +17,7 @@ export function resolveApiHeaders() {
|
|||||||
const electron = getElectron();
|
const electron = getElectron();
|
||||||
|
|
||||||
const res = {};
|
const res = {};
|
||||||
const accessToken = localStorage.getItem(isAdminPage() ? 'adminAccessToken' : 'accessToken');
|
const accessToken = localStorage.getItem(isOneOfPage('admin', 'admin-license') ? 'adminAccessToken' : 'accessToken');
|
||||||
if (accessToken) {
|
if (accessToken) {
|
||||||
res['Authorization'] = `Bearer ${accessToken}`;
|
res['Authorization'] = `Bearer ${accessToken}`;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
const config = await getConfig();
|
const config = await getConfig();
|
||||||
setConfigForPermissions(config);
|
setConfigForPermissions(config);
|
||||||
await handleAuthOnStartup(config);
|
await handleAuthOnStartup(config);
|
||||||
} catch (e) {
|
} catch (err) {
|
||||||
console.log('Error calling API, trying again in 1s');
|
console.log('Error calling API, trying again in 1s:', err.message);
|
||||||
setTimeout(loadApi, 1000);
|
setTimeout(loadApi, 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user