From 6ac0b2ed9efd848710794fee6b03c121dcc9e2b1 Mon Sep 17 00:00:00 2001 From: Alexis Tyler Date: Wed, 3 Mar 2021 14:27:31 +1030 Subject: [PATCH] feat: add license info --- app/core/modules/info/get-debug.ts | 0 app/core/modules/info/get-license.ts | 46 ++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 app/core/modules/info/get-debug.ts create mode 100644 app/core/modules/info/get-license.ts diff --git a/app/core/modules/info/get-debug.ts b/app/core/modules/info/get-debug.ts new file mode 100644 index 000000000..e69de29bb diff --git a/app/core/modules/info/get-license.ts b/app/core/modules/info/get-license.ts new file mode 100644 index 000000000..48ca1d79b --- /dev/null +++ b/app/core/modules/info/get-license.ts @@ -0,0 +1,46 @@ +/*! + * Copyright 2019-2021 Lime Technology Inc. All rights reserved. + * Written by: Alexis Tyler + */ + +import fs from 'fs'; +import { varState } from '../../states'; +import { CoreContext, CoreResult } from '../../types'; +import { ensurePermission } from '../../utils'; + +/** + * Get server's license info + * + * @memberof Core + * @module info/get-license + */ +export const getLicense = async function (context: CoreContext): Promise { + const { user } = context; + + // Check permissions + ensurePermission(user, { + resource: 'license', + action: 'read', + possession: 'any' + }); + + // Get license data + const type = varState.data.regTy; + const state = (varState.data.regCheck.trim() === '' ? type : varState.data.regCheck).toUpperCase(); + const file = await fs.promises.readFile(varState.data.regFile, 'utf-8'); + const parsedFile = Buffer.from(file).toString('base64').trim().replace('+', '-').replace('/', '_').replace('=', ''); + + return { + get text() { + return `License type: ${type}\nState: ${state}`; + }, + get json() { + return { + type, + state, + file: parsedFile + }; + } + }; +}; +