????

Your IP : 3.138.170.222


Current Path : C:/inetpub/vhost/invest.gdtsolutions.vn/api/dist/apps/permissions/
Upload File :
Current File : C:/inetpub/vhost/invest.gdtsolutions.vn/api/dist/apps/permissions/permission-definition.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CrudPermissionDefinition = exports.PermissionDefinition = void 0;
class PermissionDefinition {
    constructor(config) {
        this.config = config;
    }
    getMetadata() {
        const { name, description, assignable, internal } = this.config;
        return [
            {
                name,
                description: description || `Grants permissions on ${name} operations`,
                assignable: assignable ?? true,
                internal: internal ?? false,
            },
        ];
    }
    get Permission() {
        return this.config.name;
    }
}
exports.PermissionDefinition = PermissionDefinition;
class CrudPermissionDefinition extends PermissionDefinition {
    constructor(name, descriptionFn) {
        super({ name });
        this.descriptionFn = descriptionFn;
    }
    getMetadata() {
        return ['Create', 'List', 'Edit', 'Delete'].map((operation) => ({
            name: `${operation}${this.config.name}`,
            description: typeof this.descriptionFn === 'function'
                ? this.descriptionFn(operation.toLocaleLowerCase())
                : `Grants permission to ${operation.toLocaleLowerCase()} ${this.config.name}`,
            assignable: true,
            internal: false,
        }));
    }
    get Create() {
        return `Create${this.config.name}`;
    }
    get List() {
        return `List${this.config.name}`;
    }
    get Edit() {
        return `Edit${this.config.name}`;
    }
    get Delete() {
        return `Delete${this.config.name}`;
    }
}
exports.CrudPermissionDefinition = CrudPermissionDefinition;
//# sourceMappingURL=permission-definition.js.map