自定义了一个policy adapter,它依赖一个service服务,但目前这个动态模块无法注入依赖,因此就硬编码了一个,所以能否改进一下authzmodule?
@Module({
providers: [],
exports: [],
})
export class CasbinModule {
static register(options: AuthZModuleOptions): DynamicModule {
const moduleOptionsProvider = {
provide: AUTHZ_MODULE_OPTIONS,
useValue: options || {},
};
const enforcerProvider = {
provide: AUTHZ_ENFORCER,
useFactory: async (service: CustomService) => {
const policy = new CustomAdapter(service);
return casbin.newEnforcer('model.conf', policy);
},
inject: [CustomService],
};
return {
module: CasbinModule,
imports: [CustomModule],
providers: [
moduleOptionsProvider,
enforcerProvider,
AuthZGuard,
AuthZRBACService,
AuthZManagementService,
],
exports: [
moduleOptionsProvider,
enforcerProvider,
AuthZGuard,
AuthZRBACService,
AuthZManagementService,
],
};
}
}