Javascript 基于角色的动态角色访问控制

Javascript 基于角色的动态角色访问控制,javascript,typescript,roles,nestjs,rbac,Javascript,Typescript,Roles,Nestjs,Rbac,我们有一个应该实现rbac的嵌套应用程序。我根据guard文档为它添加了一个基本的guard和decorator:。 问题是:这只允许静态角色 我们的目标:在我们的案例中,我们有一个合同实体。如果合同的承包商()或承包商的主管()试图访问本合同,则应单独加载本合同。 我不想实现像if(contract.contractor.id==user.id)之类的东西,因为我们有很多不同的情况,随着时间的推移,这些情况会变得一团糟 如下所示: @Get() @Roles(ROLES.ADMIN, ROLE

我们有一个应该实现rbac的嵌套应用程序。我根据guard文档为它添加了一个基本的guard和decorator:。 问题是:这只允许静态角色

我们的目标:在我们的案例中,我们有一个
合同
实体。如果合同的承包商(
)或承包商的主管(
)试图访问本合同,则应单独加载本合同。 我不想实现像
if(contract.contractor.id==user.id)
之类的东西,因为我们有很多不同的情况,随着时间的推移,这些情况会变得一团糟

如下所示:

@Get()
@Roles(ROLES.ADMIN, ROLES.CONTRACTOR, ROLES.SUPERVISOR)
getContractById(...): Contract {
    return this.contractService.findById(...);
}

当然,
ROLES.SUPERVISOR
只是一个字符串,然后与用户的静态角色匹配。因此,问题是:我如何通过动态角色实现类似的功能,例如主管角色,它仅在特定项目的上下文中是动态的。

任何结果我的朋友:)任何结果我的朋友:)