我目前正在开发多租户SaaS。
我们系统中的每个租户都是订阅(想想Azure订阅),订阅的所有者可以在订阅中创建多个商店。然后,他们可以邀请用户进行订阅,并授予他们访问各个商店的权限。
有点像这样:
App
|- Subscription A (owned by Bob)
| |- Store A (access granted to Alice)
| |- Store B
|
|- Subscription B (owned by ...)
| |- Store A'
| |- ...
|- ...
我们需要的是 Bob 可以邀请 Alice 加入他的订阅,并授予她商店A 的访问权限。 Alice 无法访问 Store B 。
我对ABP的理解是我可以使用内置的多租户模型实现订阅。但我不明白的是,我怎样才能将其扩展到商店层面?
我们能否以某种方式将组织单位与多租户模型结合起来才能实现这一目标?在我们的模型中,订阅包含所有计费信息,而商店很可能代表(子)部门。
编辑:我知道组织单位会触及这种情况,但我们必须自己实施所有过滤。此外,如果我们想要将更多权限附加到某些商店,例如Alice是商店A的商店管理员,我们是否可以利用内置的权限模型而不需要很多"手册"检查?
答案 0 :(得分:1)
商店,部门或任何其他单位可以在ABP中以组织单位表示。
组织单位(OU)可用于对用户进行分层分组 实体。 OU由OrganizationUnit实体表示。 该实体的基本属性是;
TenantId: Tenant's Id of this OU. Can be null for host OUs.
ParentId: Parent OU's Id. Can be null if this is a root OU.
Code: A hierarchical string code that is unique for a tenant.
DisplayName: Shown name of the OU.
了解更多信息
https://aspnetboilerplate.com/Pages/Documents/Zero/Organization-Units