tenant
一、机构管理
1、概述
以机构维度实现多租户,分为上下级,上级机构可管理下级机构的数据,每一个机构就是一个租户、租户即是机构;
2、技术实现
通过在表结构添加tenant_id或user_id字段,实现租户隔离;
3、流程
整个系统最上层机构绑定系统管理员,可往下添加机构,其中设置的系统账号为该机构管理员:
Tips
第一个机构(蜂信物联)绑定超级管理员admin,其机构dept_id必须为100,需配置系统层面的部分业务,服务于终端用户,例如:三方登录、短信登录;
web端注册用户归属机构:其机构dept_id必须为101,机构下必须包含一个普通用户(general)角色,在web端注册的新用户绑定到该机构,后续可调整该用户所属机构。注意:如果不使用web端账号注册功能,该机构可忽略使用,正常情况下使用新版多租户web端是没有账号注册功能的,这里只是为了展示注册功能,所以把web端注册的新用户绑定到该机构。
二、角色管理
1、概述
机构内可单独设置多个角色,也可管理下级机构的角色;
2、实现
创建机构时会默认创建一个管理员角色,该角色权限范围跟随当前操作者所属机构管理员的角色权限,该管理员角色绑定到机构设置的系统账号上;
3、流程
同一机构内管理员不可以更改自己管理员角色的权限,可更改机构内其他角色的权限;上级机构可更改下级机构的角色权限,其中下级机构管理员角色可更改范围跟随操作者所属机构管理员角色的权限范围,下级非管理员角色可更改范围为同机构内的管理员角色权限范围;
Tips
每个机构只能有一个管理员角色,其权限字符为manager,不可删,请合理配置每个角色的权限范围;
三、用户管理
1、概述
机构可单独管理机构内用户,也可管理下级机构的用户;
2、流程
创建用户时需选择机构,其中角色为该机构下的角色;
Tips
- web端注册的新用户绑定到**(web端注册用户归属机构)**机构,其角色绑定的是该机构下的普通用户(general)角色;
- 小程序、移动端注册的新用户不绑定任何机构,属于终端用户,其角色绑定的是超级管理员机构下的普通用户(general)角色;
- 终端用户只可以登录小程序、移动端,租户用户可以登录所有平台;
四、设备管理
1、概述
机构可单独管理机构内设备,也可管理下级机构的设备;
2、流程
新增设备时,产品来源为该机构和上级机构的产品,该设备绑定在机构管理员账号下;
3、新增功能
- 新增设备:可以批量导入,也可手动添加
- 分配设备:可以选择机构内设备分配给其他机构,也可以批量导入设备分配给机构
- 回收设备:可以把分配给其他机构的设备回收到自己机构下
- 设备联动:通过机构层级关系,更方便快捷的查看各机构的设备情况
4、功能改动
终端用户:单独管理终端用户,谨慎分配权限
设备归属:设备表iot_device,使用tenant_id区分租户
机构内创建设备归属该机构,并绑定到机构管理员;
设备绑定:设备用户表iot_device_user
终端用户可在小程序或App采用配网、扫码、关联方式添加设备;
设备分享:设备分享表iot_device_share
租户去除设备分享功能;终端用户可以把已绑定的设备分享给其他终端用户:
设备告警:设备告警用户表iot_device_alert_user
以设备为维度,设备详情页面新增告警用户tab栏,当租户下的设备配了场景联动和告警,可以在告警用户页面添加通知用户,设备告警通知账号来源:通知模版配置的发送账号+告警用户页面配置的用户
五、其他模块
1、通用物模型、协议管理、设备模拟、系统管理、系统监控、系统工具、Netty管理、EMQ管理、组态图库管理:整个系统通用,不做租户隔离,可在配置角色时分配权限,谨慎分配;
2、产品分类:租户隔离,可以查看上级机构的数据,但是不可以修改;
3、产品管理:租户隔离,可以查看、使用上级机构的产品,但是不可以修改;
4、设备分组:租户隔离,终端用户隔离;
5、产品固件:租户隔离,可以查看上级机构的数据;
6、通知渠道、通知模版、通知日志:租户隔离,各机构单独配置,租户用户在小程序订阅设备告警模版使用归属机构配置的模版;终端用户短信登录、三方登录、小程序内订阅告警模版使用顶级机构配置内容;
7、规则引擎:租户隔离;终端用户创建的场景、告警记录归属自己;
8、云云对接、视频中心、数据可视化:租户隔离;
9、组态管理:除了图库管理其他模块租户隔离;
六、后续开发
1、优化完善版本