加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

最经典的权限设计同样也是最糟糕的权限设计,权限设计理念最关键

发布时间:2020-12-16 22:31:16 所属栏目:大数据 来源:网络整理
导读:大概在接近10年前做VB版本的ERP系统,其中的权限分配也完全是类似下面的设计思路,分若干个模块、有新增、删除、编辑、删除、扩展1、扩展2、扩展3等操作权限定义,当时也很佩服设计类似权限系统的人,感觉设计这个的人真的是很有水平,甚至在后来的N多业务系
大概在接近10年前做VB版本的ERP系统,其中的权限分配也完全是类似下面的设计思路,分若干个模块、有新增、删除、编辑、删除、扩展1、扩展2、扩展3等操作权限定义,当时也很佩服设计类似权限系统的人,感觉设计这个的人真的是很有水平,甚至在后来的N多业务系统里也进行模仿,也做过类似的权限判断优化的存储过程程序等,当年也非常有成就感,呵呵。

当还没深入开发时也感觉不出来其中的奥秘,也体会不出来否好用还是不好用,就感觉看着是很强大,足够强大,还可以无限扩展一样。

随着自己着手开发的信息化业务系统越来越多、经验积累也越来越多、各种体会也越来越深刻,从最近5年左右开始,逐渐发现这个权限设计存在蛮多问题,有很多细节方面无法满足开发要求灵活性,先简单的总结一下其中的不足,虽然对付用用还是没问题:

1:例如有些模块,是没删除功能的也没结束功能的,例如打个比方“成本预算”不是啥模块都清一色“添加、删除、修改”,权限哪里有那么简单了。

2:无法进行灵活扩展,例如某一个人有人事招聘权限、面试权限、笔试权限、确定岗位权限、确定试用期期限的权限,那怎么扩展了?那不是没完没了了?

3:判断权限的函数相对繁琐,需要判断哪个模块上的什么操作权限?2个参数才可以,相对于只进行有什么操作权限判断还是过于复杂。

4:无法简化、细化操作权限项,例如我想简化为5个权限,不想设置这么多权限时,就会麻烦一些。

由于存在以上几点缺点无法得到比较好的解决,后来权限管理的设计就进行了简化、使得更加灵活了,更加好扩展了。

操作权限的判断函数也变得非常简单,就一行代码就可以了,思路也简化了,灵活性也有了。

// 这些是操作权限,当前用户有什么相应的操作权限?
this.permissionAdd = this.IsAuthorized("RoleAdmin.Add");

一个好的权限管理系统,若刚开始就走错了方向,那接下来越走就越折腾了,很多时候往往是设计思想的一点点变化,可能会导致全局上的天大差别,有的软件越走越臃肿,越累。

其实很多时候,往往是差距那么一点点的小小的设计理念,小小的功能差别,就能绝对胜败。例如海湾战争期间,伊拉克的坦克也是坦克,老美的坦克也是坦克,他们很多功能都有,但是人家老美的坦克就能多打几百米,那就整个战场上可能就由于有几百米的差距,带来惨痛的损失,在软件开发上也是一样的,很多功能上的一些细小的差距很可能导致了,整个软件系统就是没人家的好用。

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读