@产品首页投稿(暂停使用,暂停投稿)@产品首页推荐

你是怎么设计权限系统的?

2017-08-20  本文已影响387人  Q_misky

凡事都要先问一句:为什么?了解了背景,更容易理解为什么要做这件事。

Q:我们的系统为什么要设计权限系统呢?
A:因为在这个系统中,不同的用户要做的事情不一样。权限的分离可以更好的保证每个用户只做好自己的事情、管好自己的一亩三分地。

Q:那不做权限管理也没有关系啊?让每个用户看到的东西都一样,不是更有利于了解事情的全貌,对这个事情了解地更加深刻吗?何况,就算所有的用户看到的都一样,每个用户还是只点击属于自己的按钮啊,并不会影响什么?
A:首先,没法保证不会有个别用户因为“好奇”不小心在系统里做了别人的事情。其次,不是每个人都愿意了解事情的全貌,很多人都是做好份内之事。最后,不是每个人都有权力知道事情的全貌,作为一个螺丝钉,干好螺丝钉的事情就好,没必要担忧一些莫须有的事情。所以,为了尽量少地污染用户的眼睛,就让每个用户在系统里看到自己该做的事情就好。

Q:我可以理解为:权限系统就是让每个用户做自己的事情吗?
A:Bingo,理解的很到位。

Q:那有那么多用户,一个一个设置权限岂不是要累死了。是不是有个用户分类啥的会好一点。
A:对的。如果系统只有5个用户,一个一个设置权限工作量不大,没啥大问题。但若是有500个用户,还要一个一个设置权限,估计要奔溃了。研发同学不是有一句话嘛,重复性超过10次的工作还是写个脚本吧。所以,存在用户账号的系统,从一开始就考虑是否需要权限管理,后面可以少踩很多坑哦。

在系统里,用户的分类至少要考虑两件事:

Q:那同理,要做的事情是不是也可以这么思考?事情分为哪几类?每类事情之间有什么联系?
A:越来越聪明啦,我再补充一下。

要做的事情至少要考虑三件事:

用户能做什么事情,这个“事情”大多是从业务层面上谈的。在产品设计过程中,我们要把业务流程转化为系统流程。换句话说,在系统里:

Q:是不是还有“用户类型”和“功能/数据”的对应关系啊?不然这独立的两部分也没发用啊。。。
A:是的,必须要有这种对应关系的。


总结一下,权限系统就是解决了用户(who)有权对哪些功能(what)执行哪些(how)操作。

更多请移步RBAC权限管理

— end —

上一篇 下一篇

猜你喜欢

热点阅读