在 ThingsBoard CE(社区版)中,租户管理员拥有对规则链、客户、资产、设备、仪表板等资源的全面管理权限。如果你想为租户创建一个普通用户,并限制其不能操作规则链、高级功能、安全设置等,可以通过以下步骤实现:
一、系统管理员增加租户普通用户
在增加用户时,增加一个单选框,分别为租户管理员、租户普通用户。Thingslink.cn - 物联网设备管理平台、智能设备调试、设备监控、设备接入
增加选择框的源代码修改如下:
1)在src\app\modules\home\pages\user\user.component.html增加单选框
<mat-radio-group [(ngModel)]="authority" name="authority" required>
<mat-radio-button [value]="'TENANT_ADMIN'">{{ 'user.tenant-admin' | translate }}</mat-radio-button>
<mat-radio-button [value]="'TENANT_USER'">{{ 'user.tenant-user' | translate }}</mat-radio-button>
</mat-radio-group>
2)在src\app\modules\home\pages\user\users-table-config.resolver.ts 去掉对角色强制付值。
saveUser方法去掉user.authority = this.authority;
3)在src\app\modules\home\pages\user\add-user-dialog.component.ts文件里对页面选项值的获取
add()方法里
this.user.authority = this.detailsForm.value.authority; //this.data.authority;
4)在src\app\modules\home\pages\user\user-routing.module.ts文件里增加权限
const routes: Routes 方法里,增加
auth: [Authority.SYS_ADMIN, Authority.TENANT_ADMIN, Authority.TENANT_USER],
二、对租户普通用户这个角色增加采单权限,增加源代码里如:
Authority.TENANT_USER,[{name: 'customer.management',places: [MenuId.customers]},{name: 'asset.management',places: [MenuId.assets, MenuId.asset_profiles]},{name: 'device.management',places: [MenuId.devices, MenuId.device_profiles, MenuId.otaUpdates]},{name: 'entity-view.management',places: [MenuId.entity_views]},{name: 'edge.management',places: [MenuId.edges, MenuId.rulechain_templates]},{name: 'dashboard.management',places: [MenuId.widget_library, MenuId.dashboards]},{name: 'audit-log.audit',places: [MenuId.audit_log, MenuId.api_usage]},]
三、权限对比
-
默认情况下,客户用户只能查看被授权的设备、资产、仪表盘,无法操作规则链、租户配置、安全设置。
-
如果你使用了 ThingsBoard PE(专业版),还可以通过 角色(Role) 和 用户组(User Group) 进一步细化权限:
-
创建自定义角色 → 只勾选“读取设备”“读取仪表盘”等权限。
-
将用户加入该角色即可。
-
ThingsBoard CE(社区版),权限控制相对简化,建议通过客户层级来隔离权限