12 ABP Framework 租户管理
ABP Framework 租户管理
核心概述
ABP 框架的租户管理系统提供全面的多租户支持,包括租户 CRUD 操作、租户特定功能管理及与权限系统的集成,使 SaaS 应用能为不同客户组织隔离数据和功能。
核心架构(Core Architecture)
租户管理系统围绕多租户概念构建,其中每个租户代表一个独立的客户组织。该系统提供 Angular 用户界面组件和后端服务,用于管理租户生命周期和租户特定功能。
租户管理组件架构
提供者系统集成
租户管理系统与 ABP 基于提供程序的架构集成,以实现功能和权限管理
UI 组件(UI Components)
租户组件(TenantsComponent)
租户管理的主要组件提供了一个完整的 CRUD 接口,并集成了功能管理。
-
核心属性:
Property 属性 Type 类型 Purpose 目的 data PagedResultDto<TenantDto>
Paginated tenant list 分页租户列表 selected TenantDto
Currently selected tenant for editing
当前选择用于编辑的租户tenantForm UntypedFormGroup
Reactive form for tenant data 租户数据的响应式表单 visibleFeatures boolean
Controls feature management modal visibility
控制功能管理模态框的可见性providerKey string
Tenant ID for feature management 功能管理的租户 ID -
关键方法:
addTenant()
: 创建新租户表单editTenant(id: string)
: 加载租户进行编辑save()
: 持久化租户更改openFeaturesModal(providerKey: string)
: 打开特定租户的功能管理
功能管理集成
租户管理 UI 使用提供程序类型"T"
集成FeatureManagementComponent
,管理租户特定功能覆盖:
<abp-feature-management*abpReplaceableTemplate="{inputs: {providerName: { value: 'T' },providerKey: { value: providerKey },visible: { value: visibleFeatures, twoWay: true }},outputs: { visibleChange: onVisibleFeaturesChange },componentKey: featureManagementKey}"[(visible)]="visibleFeatures"providerName="T"[providerKey]="providerKey"
>
</abp-feature-management>
数据流与操作(Data Flow and Operations)
租户 CRUD 操作
功能提供者解析
功能管理系统采用分层提供者解析,租户功能("T"
)可覆盖默认功能("D"
):
模块配置(Module Configuration)
TenantManagementModule 设置
模块通过贡献者令牌提供扩展性,用于自定义 UI 行为:
Token | Purpose |
---|---|
TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS | 租户行的自定义操作 |
TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS | 自定义工具栏按钮 |
TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS | 租户表的自定义列 |
TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS | 创建表单的自定义字段 |
TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS | 编辑表单的自定义字段 |
配置示例:
TenantManagementModule.forChild({entityActionContributors: [...],toolbarActionContributors: [...],entityPropContributors: [...],createFormPropContributors: [...],editFormPropContributors: [...]
})
集成模式(Integration Patterns)
多租户服务集成
权限集成
租户管理虽不直接管理权限,但为权限解析提供上下文。租户内的用户和角色通过使用提供程序类型"U"
和"R"
的权限管理系统,在该租户范围内解析其权限。