总结一下维护了一年的一个软件系统的软件体系(四)

来源:互联网 发布:中国网络电视台手机版 编辑:程序博客网 时间:2024/05/01 01:13

           维护的这个软件系统使用了一个比较复杂的系统权限管理系统,原本的设计是将用户对软件的使用权限控制到以最末级的菜单,并根据公司组织机构的设计,上级组织单位可以将自身所获得的权限继续授权到自己的下级公司。

       为了授权权限的操作简单话,不然每次都从几百个菜单选项中选择给该用户授权的菜单权限,恐怕这个权限系统管理员就要崩溃了。:-),权限管理系统将权限分为了权限组,权限域,基本权限管理。

      权限组和权限域的区别我至今没有太分的清楚,郁闷中····在不多的使用当中(主要是设置测试用户的权限)感觉上这两种权限范围设置是评级的,没有谁是谁的上级的关系,不清楚当初为什么设置成这样,我用的主要是权限域的设置。

     给用户授权下权限,前提是已经有相应的权限域设置。

   1.权限域设置:权限域需要相应的设置编码,并选择该权限域包括的菜单权限。

   2.在设置好权限域后,就可以直接将该权限域授权到系统用户。

   权限管理使用了数据库信息管理,现在使用起来比较笨拙,不过由于最初的设置过于复杂,如果使用现在比较统一的xml文件配置,可能使用起来也不是很方便。

   每个菜单权限项都有一个自身的权限编码,该系统的菜单全部分为三级,编码规范为:一级菜单编码_二级菜单编码_三级菜单编码。这样,在授权权限的时候可以直接将一级菜单授权,用户相应的也获得该一级菜单下所有功能的使用权。

    用户登录成功后系统会将该用户的合法权限值压到一个集合中,放到sessin对象里。

   权限的控制在系统的页面和后台控制类都有实现。页面使用了上一篇提到的页面逻辑标签实现控制,在显示该页面之前,控制类使用了个系统框架提供的公共权限控制类将该用户的权限值压到页面值中。

  在调用该功能之前,控制类现会判断该用户的权限,有一个通用类,将该功能的权限和当前的用户对象作为参数传入,该类会判断在用户的权限集合中是否包括该权限,以决定是否继续执行该功能流程。

  这个系统的权限管理部分就是这么多了,下一篇讲讲这个系统的数据库管理部分。

原创粉丝点击