UNPKG

@midware/mauth

Version:

A simple auth middleware for Node.js

56 lines 2.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); // file deepcode ignore no-any: any needed for type inference const flexiblepersistence_1 = require("flexiblepersistence"); const unauthorizedError_1 = __importDefault(require("./util/unauthorizedError")); class Permission { getInstanceName() { return process.env.INSTANCE || 'auth'; } getServiceName() { return process.env.SERVICE_NAME || 'AUTH'; } // eslint-disable-next-line @typescript-eslint/no-empty-function constructor() { } static getInstance() { if (!this._instance) { this._instance = new this(); } return this._instance; } formatPermissions(instancePermissions) { for (const key in instancePermissions) { if (Object.hasOwnProperty.call(instancePermissions, key)) { instancePermissions[key.toLowerCase()] = instancePermissions[key]; } } return instancePermissions; } permission(event, permissions) { return new Promise(async (resolve, reject) => { try { const instanceName = this.getInstanceName(); const instance = this.formatPermissions(permissions['all'] || permissions[instanceName]); if (instance) { const service = instance['all'] || instance[event?.name?.toLowerCase?.()]; if (service) { const operationName = flexiblepersistence_1.Operation[event.operation]; const operation = service.includes('all') || service.includes(operationName); if (operation) resolve(true); } } const error = new unauthorizedError_1.default(); reject(error); } catch (error) { reject(error); } }); } } exports.default = Permission; //# sourceMappingURL=permission.js.map