• 一时失误的权限设计


        最近接到一个需求需要增加一个功能的权限控制点。以前由于设计时没有考虑权限这块,这是允许管理员进行
    操作,但是随着业务的发展和实际需要,使用管理员账号来做相当的不便。所以决定加上这个权限控制点。
    具体来说说我们这个需求吧,其实也不难。就是要给客户批量导入,客户批量修改,客户批量更新增加一个新增
    和修改的权限。刚开始我也认为很简单,接到需求后,我了解清楚,并和BA确认完毕后,就将任务交代给另外一个
    同事进行开发。自然这个任务也没有想象的那么难,很快就完成了开发和单元测试。但是经过测试人员的测试发现
    了一个诡异的Bug,就是批量新增和批量修改的权限同时选择时,会相互覆盖,也就是说,你如果同时选择新增和
    修改权限,那么不好意思,只能保存一个到数据库中。
    于是我觉得很奇怪就跟踪了下,并查看了数据库中的权限设置,问题出现了,原来批量导入和批量修改是共用的
    一个画面,不仅画面是一个,当初设计权限点时也是合并在一起的,只有一个ID来记录这2个画面的功能点。
    所以如果在选择了批量导入中的查看和新增功能,并且同时选择了批量修改的查看和修改功能,那么数据库保存
    时将用后者覆盖前者。当然这个问题不是无法解决的,只需要将这2个的功能权限点分开成2条记录存储即可,不要
    合在一起,当然也可以使用特殊方法处理这2个的权限,但是无疑这都不是最好的方法来处理。
    最好的是在设计权限之初就将这2者彻底分离,以免后期维护和升级及业务变更时,更改的代价太大。权限的控制
    最好细到一个画面,一条记录的控制,不要想着省事,合并一起用。今天算是体会到了这样合并的代价。
  • 相关阅读:
    EasyUI学习笔记之panel
    下载百度上的图片C#——输入名字就可以下载
    【转--- 数据挖掘的心得学习】
    美团推荐算法实践
    spring零配置AOP踩坑指南
    Spring学习笔记(一)
    工具类--生成随机姓名及指定长度随机字符串
    Mybatis中文模糊查询,数据库中有数据,但无结果匹配
    mybatis笔记
    code forces Watermelon
  • 原文地址:https://www.cnblogs.com/kevinGao/p/15764624.html
Copyright © 2020-2023  润新知