博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一时失误的权限设计
阅读量:6768 次
发布时间:2019-06-26

本文共 721 字,大约阅读时间需要 2 分钟。

    最近接到一个需求需要增加一个功能的权限控制点。以前由于设计时没有考虑权限这块,这是允许管理员进行
操作,但是随着业务的发展和实际需要,使用管理员账号来做相当的不便。所以决定加上这个权限控制点。
具体来说说我们这个需求吧,其实也不难。就是要给客户批量导入,客户批量修改,客户批量更新增加一个新增
和修改的权限。刚开始我也认为很简单,接到需求后,我了解清楚,并和BA确认完毕后,就将任务交代给另外一个
同事进行开发。自然这个任务也没有想象的那么难,很快就完成了开发和单元测试。但是经过测试人员的测试发现
了一个诡异的Bug,就是批量新增和批量修改的权限同时选择时,会相互覆盖,也就是说,你如果同时选择新增和
修改权限,那么不好意思,只能保存一个到数据库中。
于是我觉得很奇怪就跟踪了下,并查看了数据库中的权限设置,问题出现了,原来批量导入和批量修改是共用的
一个画面,不仅画面是一个,当初设计权限点时也是合并在一起的,只有一个ID来记录这2个画面的功能点。
所以如果在选择了批量导入中的查看和新增功能,并且同时选择了批量修改的查看和修改功能,那么数据库保存
时将用后者覆盖前者。当然这个问题不是无法解决的,只需要将这2个的功能权限点分开成2条记录存储即可,不要
合在一起,当然也可以使用特殊方法处理这2个的权限,但是无疑这都不是最好的方法来处理。
最好的是在设计权限之初就将这2者彻底分离,以免后期维护和升级及业务变更时,更改的代价太大。权限的控制
最好细到一个画面,一条记录的控制,不要想着省事,合并一起用。今天算是体会到了这样合并的代价。

转载于:https://www.cnblogs.com/kevinGao/p/3589975.html

你可能感兴趣的文章
javascript进行遍历
查看>>
npm 模块化方式接入 font-awsome
查看>>
【七牛云】使用七牛云进行文件上传业务,图片处理,缩放等业务 详情查看七牛云使用说明...
查看>>
rabbitmq 不发送ack消息如何处理: RabbitMQ 消息确认以及消息消费方处理消息时候抛出了异常以...
查看>>
MVC5+EF6 入门完整教程12--灵活控制Action权限
查看>>
JAVA生成二维码并转化为二进制在页面展示
查看>>
haproxy(单机)+mysql集群负载均衡
查看>>
排序算法系列:选择排序算法JAVA版(靠谱、清晰、真实、可用、不罗嗦版)
查看>>
Perl匿名数组、hash和autovivification特性
查看>>
协变、逆变总结
查看>>
springboot mybatis 分页整合
查看>>
SpringBoot------自定义Logback日志
查看>>
180227
查看>>
JAVA设计模式总结之23种设计模式
查看>>
18-(基础入门篇)GPRS(Air202)拨打电话
查看>>
vyos 基础配置
查看>>
解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法
查看>>
Spark:实现行转列
查看>>
js Object.create 初探
查看>>
增量更新
查看>>