概要

联通最近开源的元景万悟作为央企首个开源的智能体开发平台,支持多租户、license友好并且基于golang开发,分析多租户系统组织、角色、用户之间关系以及设计思路。

平台源码网址:

https://github.com/UnicomAI/wanwu.git

基于Readme中一键部署,拉取镜像。

(1)分析创建、编辑、删除下级组织逻辑

在万悟多租户设计中,组织是角色、资源、数据等管理的基础,组织本身为树形层级结构。

系统
├── 一级组织
├── 一级组织
│ ├── 二级组织
│ └── ...
└── 一级组织
├── 二级组织
│ └── 三级组织
│ └── ...
└── 二级组织
└── ...

不同组织间数据隔离,无论上下级组织关系。

admin用户,系统组织下rag数据:

admin用户,子组织下rag数据:

创建组织

创建组织时,切到需要创建下级组织的组织,在设置-组织管理-组织 中新增组织。

在切换组织下拉列表即显示我们刚创建的下级组织。

编辑组织

支持对子组织进行编辑,修改组织名和备注。

删除组织

删除组织,会将该组织及其子组织全部删除。

组织作为角色、资源、数据的基础,删除时,会连带着删除用户的角色信息,权限信息以及其他配置的模型、rag、智能体等,请谨慎删除

(2)分析创建、编辑、删除角色相关逻辑

在万悟的多租户设计中,角色是操作权限的载体。一个角色所拥有的权限是操作权限全集的子集;不同的角色根据需要对应不同的权限子集;一个角色属于一个组织,一个组织可以有多个角色;角色可以被动态创建/删除,角色对应的权限子集可以动态修改。

角色只能在非系统组织下进行操作,系统组织没有角色管理的权限

创建角色

创建角色需要选择角色所拥有的权限范围。

编辑角色

编辑角色可以更改角色的角色名、菜单权限、备注信息。

删除角色

删除角色时,该角色对应的用户会失去原来的权限。

(3)分析创建、编辑、删除用户相关逻辑

一个用户可以对应多个组织;一个用户在一个组织中,实现上对应一个角色;一个用户可以对应多个角色,一个角色可以对应多个用户。
创建用户

系统组织下没有创建用户的权限,需要切到子组织操作。

创建用户时除了必填信息以外,角色是作为可选项,如果不填角色,则默认是无权限的用户。

编辑用户

编辑用户除了用户名和密码以外均可以修改。

删除用户

在子组织中,删除用户只是将用户移除出当前组织,只有在系统中删除用户时,是直接从这个系统中移除。

总结

组织、角色、用户三者的关系是多租户系统中重要的组成部分。组织可以理解为角色和用户的载体或者基础,角色则是权限的载体,用户则是具体操作的实体。角色和用户相对独立,删除角色会清空对应所有用户的角色选项,删除用户并不影响角色。删除组织会删除组织内的角色信息,以及该组织下的所有数据,但是用户只是移除该组织,还可以被其他组织邀请。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐