工作原因做了一个政府机构的产品,里面涉及账号权限管理,通过做这个项目,总结了一下关于B端产品的账号权限管理方法。
客户需求是建设一个完成政府某些业务流程的一个产品,包括App和Web端, 要求不同单位的不同人员看到不同的模块和数据。客户的单位属性是市局、市局各处室、各县区局。市局统揽全部,市局各处室根据自己所管辖的不同行业来进行权限划分、各县市区局根据不同的区县来进行权限划分。
我们先从创建一个账号的流程入手,看看都需要哪些组织和属性。
单位级别、属性
要创建一个账号,首先要创建账号所属的单位及角色。这里我们只有两级架构,所以可以分为一级单位和二级单位。一级单位即为市局,二级单位又分为两种:市局各处室、各县区局。
创建单位这个属性,主要是为后面账号的级别权限以及账号的数据权限来打基础。
这里客户有一个要求,就是不同的单位需要根据管辖行业和管辖区县来划分数据权限。因此每个单位需要管辖行业和管辖区县这两个属性。
那么一级单位和二级单位的权限分别是:
一级单位的级别权限:
功能权限:单位管理;
数据权限:可以查看所有二级单位数据
二级单位的级别权限:
功能权限:无;
数据权限:根据二级单位的管辖行业和管辖区县的组合来进行划分。
角色划分
角色功能权限
根据跟客户的沟通,功能角色权限划分大致权限应该分为一下几种
一级单位角色:
1.局长:可以查看web所有模块,但是仅限于查看,不能操作
2.主任:可以查看web所有模块,并且可以添加单位、添加账号、发布市级通知等
3.普通员工:可以查看web除了单位管理、账号管理以外的模块,也可以发布县级通知、发布任务等。
4.检查员:在App端录入检查结果。
二级单位角色:
1.主任:可以查看web所有模块,并且可以添加单位、添加账号、发布市级通知等
2.普通员工:可以查看web除了单位管理、账号管理以外的模块,也可以发布县级通知、发布任务等。
3.检查员:在App端录入检查结果。
企业角色:
1.企业:在App端录入自检结果。
角色功能权限(为角色分配功能、页面、操作按钮等权限)一共有以下几种,权限如下:
| 角色 | 模块 | 页面 | 字段 |
|---|---|---|---|
| 局长 | 数据统计 | 整治行动、整治情况、整改清单 | 检查人数、检查组数、一般问题数、突出问题数、整改完成数等 |
| 账号管理 | 账号列表 | 账号名、所属单位、角色、查看 | |
| 公告管理 | 公告列表 | 公告标题、发布时间、查看 | |
| 任务管理 | 任务列表 | 任务编号、发布时间、发布范围、查看 | |
| 表单管理 | 表单列表 | 表单名、行业、查看 | |
| 一级单位权限——单位管理。 | 单位列表 | 单位名、管辖行业、管辖区县、查看 | |
| 主任 | 数据统计 | 整治行动、整治情况、整改清单 | 检查人数、检查组数、一般问题数、突出问题数、整改完成数等 |
| 当所属单位为一级单位时有 | 单位管理 | 单位列表 | 账号名、所属单位、角色、查看、修改、删除 |
| 新建单位 | |||
| 账号管理 | 账号列表 | 账号名、所属单位、角色、查看、修改、删除 | |
| 新建账号 | |||
| 公告管理 | 公告列表 | 公告标题、发布时间、查看、修改、删除 | |
| 新建市级公告 | |||
| 任务管理、 | 任务列表 | 任务编号、发布时间、发布范围、查看 | |
| 新建任务 | |||
| 表单管理 | 表单列表 | 表单名、行业、查看 | |
| 普通员工 | 公告管理 | 公告列表 | 公告标题、发布时间、查看、修改、删除 |
| 新建县级公告 | |||
| 任务管理 | 任务列表 | 任务编号、发布时间、发布范围、查看 | |
| 新建任务 | |||
| 表单管理 | 表单列表 | 表单名、行业、查看 | |
| 检查员 | 检查任务(App端) | 上传检查内容 | |
| 公告 | 市级公告、县级公告 | ||
| 企业 | 自检任务(App端) | 上传自检内容 | |
| 公告 | 市级公告、县级公告 |
角色数据权限
角色数据权限(为角色分配业务数据的查看权限,依据的是业务数据中独立存储的数据的归属信息。):权限要分配到最小单元,细化到每个字段,比如添加账号属于二级单位时,角色里面只能展示二级单位的角色。
数据权限规则设置:
局长:所有单位、所有账号、所有公告、自己单位管辖的企业的检查数据、自检数据
主任:自己单位所有单位、自己单位所有账号、所有公告、自己单位管辖的企业的检查数据、自检数据
普通员工:所有公告、自己单位管辖的企业的检查数据、自检数据
检查员:所有公告,自己所在单位管辖的企业检查数据、自检数据
企业:自己所在行业和区县所有公告、自己企业的自检数据,检查数据
账号创建
一级单位系统生成默认局长和主任账号,由一级单位的主任角色创建一级单位的其他账号及二级单位的主任角色,然后由二级单位的主任角色生成二级单位的其他角色。整个账号体系就生成了。
总结
总的来说,整个账号权限体系的思路是:
1.先设单位层级,分为一级单位和二级单位,用来生成账号用,即一级单位可以生成二级单位,又可以管理二级单位。
2.再设单位属性:管辖行业和管辖区县,用来归档自己所管辖的企业,划分每个单位下账号的数据权限。
3.再划分角色功能:从角色功能、页面、字段来逐一细化每个角色的功能权限。
4.创建账号,分配单位、角色。
以上为某政府机构完整的账号设计流程。