权限体系
约 1390 字大约 5 分钟
2025-03-03
数据权限
权限隔离
联犀内置多种数据隔离级别,用户可以使用也可以不用.
隔离级别及简要说明如下:
- 租户: 多租户(Multi-Tenancy)是一种软件架构设计,它允许多个客户(租户)共享同一个应用程序实例,同时保持数据隔离和个性化配置。
- 项目: 在一个租户下可以有一个或多个项目, 如使用者有两个园区,两个园区是互相隔离的,但是用户存在交叉,这时候使用项目来进行隔离就很方便.如果是智能家居项目,则一个家庭就是一个项目.
- 区域: 区域归属于某个项目,区域是树状的,可以嵌套无限层,可以给用户授权某一个节点的权限,也可以授权某一个节点及其子节点的权限,使用非常灵活

权限定义
项目和区域可以以角色和用户的维度进行授权,有以下三种授权方式,差异如下:
- 管理权限: 可以给别人授权,并拥有修改该资源的权限及自动获取该资源下所有资源的权限,如授予项目管理权限,则自动拥有项目下所有区域和设备的权限
- 写权限: 拥有修改该资源的权限及自动获取该资源下所有资源的权限,如授予项目管理权限,则自动拥有项目下所有区域和设备的权限
- 读权限: 只有该节点的权限,子节点没有权限,如授予区域a的权限,则他拥有绑定在区域a的设备的权限,但是没有下面区域的权限
在项目和区域权限之外还有一个设备分享权限,设备分享是设备和人一对一的授权,同时支持物模型级别的授权,过期时间,是便于临时性的或设备级的权限控制

角色权限
在联犀中内置了两种角色,在程序里通过角色编码来区分:

- 超级管理员(supper): 租户创建时指定的管理员默认为超级管理员,并且无法取消,该角色不受功能授权的约束和应用权限的约束,只要这个租户被授予的他默认都有,同时可以看租户下的所有设备
- 管理员(admin): 受功能授权和应用授权的约束,不指定项目的时候可以看租户内的所有设备.
- 普通用户: 受功能授权和应用授权的约束,只能看到授权的项目及区域下的设备
当我们需要定义自己的角色的时候,可以借助内置角色的编码来实现对应的能力,如我们需要一个全局的运维人员,这时候就可以给他的角色编码赋值为admin,这样他就有全局的设备权限,然后给他授予他能看到的功能和应用权限即可.

权限授权

使用流程
授权定义: 首先我们需要在平台管理这里定义好我们的授权,可以使用代码生成的方式进行导入,这个是全局的定义.
租户授权: 在定义好授权之后我们可以将授权授权给对应的租户,只有授权了的功能租户下的人才可以使用
角色授权: 在授予给租户下后,我们把对应的功能分配给对应的角色,角色就可以使用这些授权
应用授权

应用定义: 我们需要在应用管理这里定义我们的应用,填写对应的应用参数,应用编码需要在http头中传递,整个操作流程会记录在操作日志中,同时也避免用相同的token去登录不同的应用.
模块配置(web应用才需要): 模块是一个大的功能分组,如现在后台的系统管理,物联网,我的物联. 这里需要定义好模块信息和对应的菜单信息,然后在应用管理中绑定对应的模块,便于模块复用.
租户应用配置: 在租户管理这里将应用授权给租户,同时配置登录选项,配置好了之后租户下的用户才能使用这个应用

角色授权: 租户下有了这个应用后,可以绑定对应的角色, 对应角色的用户就可以使用该应用了