@brandazm/dynamic-permissions
Version:
A flexible and powerful permissions management system for NestJS applications with built-in security features
84 lines • 4.48 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var PermissionsModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PermissionsModule = void 0;
const common_1 = require("@nestjs/common");
const typeorm_1 = require("@nestjs/typeorm");
const config_module_1 = require("./config.module");
const security_module_1 = require("./security.module");
const config_service_1 = require("../services/config.service");
const permission_service_1 = require("../services/permission.service");
const permissions_guard_1 = require("../guards/permissions.guard");
const permission_entity_1 = require("../models/permission.entity");
const user_permission_entity_1 = require("../models/user-permission.entity");
const router_permission_entity_1 = require("../models/router-permission.entity");
const schema_validator_service_1 = require("../services/schema-validator.service");
const role_hierarchy_service_1 = require("../services/role-hierarchy.service");
const audit_service_1 = require("../services/audit.service");
const audit_log_entity_1 = require("../models/audit-log.entity");
const config_publisher_service_1 = require("../services/config-publisher.service");
const security_config_publisher_service_1 = require("../services/security-config-publisher.service");
const migration_generator_service_1 = require("../services/migration-generator.service");
const error_handling_module_1 = require("./error-handling.module");
const core_1 = require("@nestjs/core");
let PermissionsModule = PermissionsModule_1 = class PermissionsModule {
static register(config, securityConfig) {
const imports = [
config_module_1.ConfigModule.register(config),
typeorm_1.TypeOrmModule.forFeature([
permission_entity_1.PermissionEntity,
user_permission_entity_1.UserPermissionEntity,
router_permission_entity_1.RouterPermissionEntity,
audit_log_entity_1.AuditLogEntity,
]),
security_module_1.SecurityModule,
error_handling_module_1.ErrorHandlingModule,
];
return {
module: PermissionsModule_1,
imports,
providers: [
config_service_1.ConfigService,
permission_service_1.PermissionService,
permissions_guard_1.PermissionsGuard,
schema_validator_service_1.SchemaValidatorService,
role_hierarchy_service_1.RoleHierarchyService,
audit_service_1.AuditService,
config_publisher_service_1.ConfigPublisherService,
security_config_publisher_service_1.SecurityConfigPublisherService,
migration_generator_service_1.MigrationGeneratorService,
{
provide: 'SECURITY_CONFIG',
useValue: securityConfig,
},
{
provide: core_1.APP_GUARD,
useClass: permissions_guard_1.PermissionsGuard,
},
],
exports: [
permission_service_1.PermissionService,
permissions_guard_1.PermissionsGuard,
config_service_1.ConfigService,
schema_validator_service_1.SchemaValidatorService,
role_hierarchy_service_1.RoleHierarchyService,
audit_service_1.AuditService,
config_publisher_service_1.ConfigPublisherService,
security_config_publisher_service_1.SecurityConfigPublisherService,
migration_generator_service_1.MigrationGeneratorService,
config_module_1.ConfigModule,
],
};
}
};
exports.PermissionsModule = PermissionsModule;
exports.PermissionsModule = PermissionsModule = PermissionsModule_1 = __decorate([
(0, common_1.Module)({})
], PermissionsModule);
//# sourceMappingURL=permissions.module.js.map