From eac47a0dbf0ebe0cd254b1a7a9fd319a37dab1d9 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Thu, 29 Dec 2022 15:24:35 +0530 Subject: [PATCH] feat: add license page Signed-off-by: Pranav C --- packages/nc-gui/components.d.ts | 1 + packages/nc-gui/components/account/License.vue | 4 +++- packages/nc-gui/pages/account/index.vue | 12 ++++++++++++ packages/nc-gui/pages/account/index/[page].vue | 1 + packages/nocodb/src/lib/Noco.ts | 7 +++---- packages/nocodb/src/lib/meta/api/orgLicenseApis.ts | 3 ++- packages/nocodb/src/lib/meta/api/utilApis.ts | 4 +--- packages/nocodb/src/lib/meta/helpers/getHandler.ts | 6 ++---- 8 files changed, 25 insertions(+), 13 deletions(-) diff --git a/packages/nc-gui/components.d.ts b/packages/nc-gui/components.d.ts index a2d73853c2..5934f683a4 100644 --- a/packages/nc-gui/components.d.ts +++ b/packages/nc-gui/components.d.ts @@ -190,6 +190,7 @@ declare module '@vue/runtime-core' { MdiHook: typeof import('~icons/mdi/hook')['default'] MdiInformation: typeof import('~icons/mdi/information')['default'] MdiJson: typeof import('~icons/mdi/json')['default'] + MdiKey: typeof import('~icons/mdi/key')['default'] MdiKeyboard: typeof import('~icons/mdi/keyboard')['default'] MdiKeyboardReturn: typeof import('~icons/mdi/keyboard-return')['default'] MdiKeyChange: typeof import('~icons/mdi/key-change')['default'] diff --git a/packages/nc-gui/components/account/License.vue b/packages/nc-gui/components/account/License.vue index f12d793a28..a9160edf78 100644 --- a/packages/nc-gui/components/account/License.vue +++ b/packages/nc-gui/components/account/License.vue @@ -35,10 +35,12 @@ loadLicense() diff --git a/packages/nc-gui/pages/account/index.vue b/packages/nc-gui/pages/account/index.vue index b2157f0ebe..61cb1caebd 100644 --- a/packages/nc-gui/pages/account/index.vue +++ b/packages/nc-gui/pages/account/index.vue @@ -79,6 +79,18 @@ const openKeys = ref([/^\/account\/users/.test($route.fullPath) && 'users'])
App Store
+ +
+ + +
License
+
+
diff --git a/packages/nc-gui/pages/account/index/[page].vue b/packages/nc-gui/pages/account/index/[page].vue index cd4c698ad8..8b9a3d384e 100644 --- a/packages/nc-gui/pages/account/index/[page].vue +++ b/packages/nc-gui/pages/account/index/[page].vue @@ -2,5 +2,6 @@ + diff --git a/packages/nocodb/src/lib/Noco.ts b/packages/nocodb/src/lib/Noco.ts index 79bdc7fab5..cbcfbee986 100644 --- a/packages/nocodb/src/lib/Noco.ts +++ b/packages/nocodb/src/lib/Noco.ts @@ -553,9 +553,8 @@ export default class Noco { public static async loadEEState(): Promise { try { - return (Noco.ee = !!(await Store.get(NC_LICENSE_KEY))); - } catch { - return (Noco.ee = false); - } + return (Noco.ee = !!(await Store.get(NC_LICENSE_KEY))?.value); + } catch {} + return (Noco.ee = false); } } diff --git a/packages/nocodb/src/lib/meta/api/orgLicenseApis.ts b/packages/nocodb/src/lib/meta/api/orgLicenseApis.ts index 1a9df7dde3..7bbbd43106 100644 --- a/packages/nocodb/src/lib/meta/api/orgLicenseApis.ts +++ b/packages/nocodb/src/lib/meta/api/orgLicenseApis.ts @@ -2,6 +2,7 @@ import { Router } from 'express'; import { OrgUserRoles } from 'nocodb-sdk'; import { NC_LICENSE_KEY } from '../../constants'; import Store from '../../models/Store'; +import Noco from '../../Noco'; import { metaApiMetrics } from '../helpers/apiMetrics'; import ncMetaAclMw from '../helpers/ncMetaAclMw'; @@ -13,7 +14,7 @@ async function licenseGet(_req, res) { async function licenseSet(req, res) { await Store.saveOrUpdate({ value: req.body.key, key: NC_LICENSE_KEY }); - + await Noco.loadEEState(); res.json({ msg: 'License key saved' }); } diff --git a/packages/nocodb/src/lib/meta/api/utilApis.ts b/packages/nocodb/src/lib/meta/api/utilApis.ts index c565289c46..6b7acef4eb 100644 --- a/packages/nocodb/src/lib/meta/api/utilApis.ts +++ b/packages/nocodb/src/lib/meta/api/utilApis.ts @@ -3,9 +3,7 @@ import { Request, Response } from 'express'; import { compareVersions, validate } from 'compare-versions'; import { ViewTypes } from 'nocodb-sdk'; -import { NC_LICENSE_KEY } from '../../constants'; import Project from '../../models/Project'; -import Store from '../../models/Store'; import Noco from '../../Noco'; import NcConnectionMgrv2 from '../../utils/common/NcConnectionMgrv2'; import { MetaTable } from '../../utils/globals'; @@ -57,7 +55,7 @@ export async function appInfo(req: Request, res: Response) { ncMin: !!process.env.NC_MIN, teleEnabled: !process.env.NC_DISABLE_TELE, ncSiteUrl: (req as any).ncSiteUrl, - ee: !!(await Store.get(NC_LICENSE_KEY)), + ee: Noco.isEE(), }; res.json(result); diff --git a/packages/nocodb/src/lib/meta/helpers/getHandler.ts b/packages/nocodb/src/lib/meta/helpers/getHandler.ts index f41e899d6d..1f40f45b2f 100644 --- a/packages/nocodb/src/lib/meta/helpers/getHandler.ts +++ b/packages/nocodb/src/lib/meta/helpers/getHandler.ts @@ -1,14 +1,12 @@ import express from 'express'; -import { NC_LICENSE_KEY } from '../../constants'; -import Store from '../../models/Store'; +import Noco from '../../Noco'; export default function getHandler( defaultHandler: express.Handler, eeHandler: express.Handler ): express.Handler { return async (...args) => { - const key = await Store.get(NC_LICENSE_KEY); - if (!key?.value) { + if (Noco.isEE()) { return defaultHandler(...args); } return eeHandler(...args);