入行以来也接触过一些B端产品,这些产品之中权限管理是重中之重,权限管理不仅仅是整个系统的一个小小的模块,它一直贯穿整个系统,从登陆到操作到最后的登出。说它相当的复杂真不为过。

对于权限,如果从控制力来分的话,可以分为功能级权限和数据级权限。从控制方向来分的话又可以分为从系统获取数据和向系统提交数据。一般来说,权限管理无非是围绕着用户,角色和资源三个方面来进行权限管理操作。

首先,设计的时候要面向开发人员友好,让他们能够很好的理解需求和流程。不至于因为权限的问题影响开发。实际上,一般权限设计都会让在最后进行实现。因为前期考虑太多的权限会严重影响产品开发的流畅性。当然最重要的还是面向用户友好,毕竟产品的使用者是用户,所以逻辑清晰,结构完整的权限体系就显得越发重要。

举例:

派单系统

业务:系统的客户在前台提交一个订单,后台对应的接收到该订单并分派给业务员给客户完成服务。

角色:

  • 老板—查看报表和人员角色修改
  • 业务经理—1.业务管理(接单后对订单进行派发)。2.对业务员进行行政管理(增删改查)
  • 业务员—接单处理,反馈订单信息

第一种情况,简单的完成权限设计

整理一下,从业务流程来看,涉及到的角色其实就是前台的用户,业务经理和业务员。

然后从功能来看:

这样子系统的架构就能够比较清晰的进行设计了。

菜单的总体结构如下:

1 订单管理

  • 1.1未处理订单
  • 1.2已派发订单
  • 1.3已处理订单
  • 1.4处理下派订单
  • 1.5提交已完成的下派订单

2 系统设置

  • 2.1密码修改
  • 2.2个人信息设置

3员工管理

  • 3.1查看下级员工信息
  • 3.2修改下级员工信息
  • 3.3员工角色设置

4 报表管理

  • 4.1查看报表

通过登录的时候对账号类型进行判断或者不同角色通过不同的登录页面进入相应的系统页面

老板的菜单显示为:

2系统设置

  • 2.1密码修改
  • 2.2个人信息设置

3员工管理

  • 3.1查看员工信息
  • 3.2修改员工信息
  • 3.3员工角色设置

4报表管理

  • 4.1查看报表

业务经理的菜单显示为:

1订单管理

  • 1.1未处理订单
  • 1.2已派发订单
  • 1.3已处理订单

2系统设置

  • 2.1密码修改
  • 2.2个人信息设置

3员工管理

  • 3.1查看下级员工信息
  • 3.2修改下级员工信息

业务员的菜单显示为:

1订单管理

  • 1.4处理下派订单
  • 1.5提交已完成的下派订单

2系统设置

  • 2.1密码修改
  • 2.2个人信息设置

这是第一种简单的权限设计思路。但是,如果,如果boss对系统的扩展性要求较高,而非一个过渡性的系统。那边就需要改变思路。重新设计系统了。

第二种情况,完成更加灵活且复杂的权限设计

在这种情况下就要考虑下现有的各种角色以及各种角色对应的操作是否是可修改的。未来是否会变更。

比如查看报表的权限后期业务经理业务查看?随着业务的扩大,业务经理是否变成多个?boss是否能够禁止业务经理的派单权限?在这种情况下,各种权限其实是变成可配置的了。

这个时候就需要转化思路了。首先将所有的功能全部抽离并罗列出来。如下就是简略的功能列表

其中,boss角色一开始就具备所有的功能。他可以创建下级角色—业务经理,创建的同时给业务经理这个角色分配权限(实现方式可以类似技能树0.0)。也可以创建一个归属业务经理的业务员。这样,权限,角色都是可进行灵活配置,扩展性和实用性也更强。

Step1:角色管理-添加角色

在这一步中进行角色的添加并分配权限。

Step2:用户管理-添加用户

在这个步骤中重点是给添加的用户分配角色(即权限)

这样子就将角色,用户,权限分离开,管理也就更加的方便和灵活了。

但是值得注意的是,这三者之间的关联性,对某一个的删除,修改等操作是否会对其他部分产生影响。这个就需要产品经理在后面进行慢慢的梳理了。

延伸阅读:

【权限设计】一个案例,三个角色,简单说下B端产品的权限设计

【权限设计】如何以“用户”为单位的进行权限设计(一)

【权限设计】如何以“权限”为单位的进行权限设计(二)

摘自:

http://www.woshipm.com/pd/452495.html

【权限设计】一个案例,三个角色,简单说下B端产品的权限设计相关推荐

  1. 设计一个shell程序,在/userdata目录下建立50个目录,并对每个目录给754权限!

    设计一个Shell程序,在/userdata目录下建立50个目录,即user1-user50,并设置每个目录的权限,其中其他用户的权限为:读:文件所有者的权限为:读.写.执行:文件所有者所在组的权限为 ...

  2. 可以设计一个电子三缝干涉实验

    电子双缝干涉实验的讨论非常多了.吾就想,如果设计一个电子三缝干涉实验,结果会怎么样? 开始肯定是三缝干涉图案. 在其中一个缝加上探测,那么结果是点,还是双缝干涉? 如果在两个缝加上探测,有没有可能产生 ...

  3. 设计一款日历java_用JAVA设计一个表示2013年的简单日历系统。

    展开全部 我也 想要 这个 程序...我找了一个,你可62616964757a686964616fe78988e69d8331333332623864以借鉴下, //下面是一个带界面的java日历.可 ...

  4. 设计一个矩形类rectangle_万字长文带你捋清六种设计模式的设计原则(建议收藏)...

    对于设计模式,自己很早之前就看了好多本设计模式书籍,其中一些还看了好几遍,也一直希望自己能在编码的时候把这些设计模式用上去.可是,在日常的打码中,用的最多的就是单例,其次是观察者和建造者模式 ( bu ...

  5. 从政府项目中总结出的B端产品账号权限管理

    工作原因做了一个政府机构的产品,里面涉及账号权限管理,通过做这个项目,总结了一下关于B端产品的账号权限管理方法. 客户需求是建设一个完成政府某些业务流程的一个产品,包括App和Web端, 要求不同单位 ...

  6. 针对B端产品引发的设计思考

    一.充分了解项目的设计需求 设计并不是只是简单的美化,而是需要在彻底理解业务逻辑后,再考虑如何设计与实现它.我们可以根据用户的实际使用场景,优化产品逻辑,提供更符合业务流程的解决方案. 二.降低用户的 ...

  7. umi.js学习(八)、案例三、ProTable 简单使用

    效果展示 导入 yarn add @ant-design/pro-table //使用DatePicker时间选择器 yarn add moment 创建user模块 配置路由及配置代理 在.umir ...

  8. 设计一个对银行账户余额操作的简单程序(Java)

    假设 账号:123456789 密码:5211314 余额:10000000 进入程序输出选择操作选项: 1.存款 2取款 3.查询余额 要求使用Scanner交互式操作. 存款,取款,查询均需要输入 ...

  9. 设计一个名为complex的类来表示复数_因果图用例设计方法概念详解

    为什么么需要因果图 在黑盒测试中,等价类划分或边界值分析法只考虑了不同的输入和不同的输出之间的关系.但是如果是各个输入条件之间有很复杂的组合,这二种设计方法都很难用一个系统的方法进行描述,设计测试用例 ...

最新文章

  1. GPUImageMovieWriter实现暂停录制,重新录制
  2. 转结构体_golang处理gb2312转utf8编码的问题
  3. 芯片支持的且会被用到的H.264特性 预测编码基本原理
  4. ARP***防范与解决方案
  5. 系统没有安装vc9.注意是x86 32位_Windows 软件默认安装位置之谜
  6. 阿里巴巴组织能力建设(政委机制、绩效管理、人才发展等).pdf(附下载链接)...
  7. 【Oracle】数据迁移工具(2):Data Dump
  8. Linux 内存管理(二)——伙伴系统
  9. Qt安卓开发环境搭建
  10. 物联网和区块链:挑战与风险
  11. aspcms用mysql_aspcms分类列表调用的几个实例
  12. 新手安装arch安装界面wifi-menu连接不了wifi
  13. matlab检验矩阵是否可逆,有限域上矩阵是否可逆的检验
  14. 模仿QQ空间 网页设计
  15. Qt全局坐标和相对坐标
  16. STC+Andriod+ESP8266制作手机遥控小车
  17. 手机几款超级好用的APP你都认识吗
  18. IONIC扫描二维码和一维码(条形码)
  19. 用树结构描述和计算数据
  20. 海蜘蛛软路由制作U盘启动盘

热门文章

  1. 嵌入式环境搭建之NFS
  2. 《C#线程参考手册》读书笔记(三):.NET中的线程池
  3. BW报表igs服务配置解决中文显示问题
  4. 俄罗斯国家黑客TA505被指攻击金融机构
  5. Fortinet 修复严重漏洞,可导致未认证黑客以最高权限执行任意代码
  6. 网页设计太麻烦?15款免费优质Bootstrap UI工具包助你效率倍增!
  7. Django 聚合(译)
  8. 【日常水题-bfs】马的遍历
  9. 【js】数组的splice方法和slice方法的区别
  10. 【不用拔插U盘也可以继续使用】