权限控制

不知大家在做项目时是否遇到我同样的问题,这就是如何控制整个系统的权限。权限控制起来有粗有细,有的按模块分配权限,稍好点也就是定死几个权限操作来分配,然而又几乎没有通用的权限系统可以使用,往往要做新项目时,为了省时省力,就只好将那个又老又笨的权限控制模块搬来搬去了。

所以,我希望做一个功能强大而且部署简单类似于组件式的权限管理系统,设计也早有了腹稿,只是苦于一直没有时间(好像这是懒人的惯用借口J)。最近终于逮着机会可以稍作休整,可以安心地将设计重新修改,并将它付诸实现了。

闲话不多说,先简要介绍一下该权限管理系统的特点,该系统采用了struts1.1+tiles+Oracle9i的架构,其中的权限树用到了DTree。功能上做到了灵活授权,操控细致,权限可以细到按钮及超链级别(需要配合扩展的struts标签),而且部署简单,下面谈谈我自己的设计经验。

该系统主要功能如下:

1、  自定义操作动作(如增加、删除、修改、审核等,不再是以前见过的那种粗粒度的按模块分配权限,或者稍微先进点的规定死某几个操作了)。

2、  无限级功能模块管理,自定义模块排序,可以更好地对整个系统中所有模块进行分类管理。

3、  灵活地为各模块分配操作,即每个模块有哪些操作需要被控制(将步骤1中添加的操作按需分配给各模块)。

4、  对所有用户基础信息进行管理,实行有效期机制,过期自动失效,在有效期间亦可强制停止用户使用。

5、  自定义角色,可以起个听起来通俗易懂的名字。

6、  任意角色可任意组合系统权限功能点(比如某个模块里他只能修改数据而不能添加或删除等其它操作)

7、  一个用户可有多个角色(多身份),一个角色也可以被多个用户拥有(同身份)(多对多),灵活授权。

8、  按角色给用户授权,当授权对象数量庞大的时候就可大显身手了(比如给公司全体员工授权)。

9、  按用户分配角色,当某个用户以多种身份出现在系统中的时候,希望分配多个角色。

10、              用户及角色分级管理,下级用户只能拥有上级用户权限的子集,可无限级,而除了超级管理员外其它用户都只能看到属于自己管理范围内(自己创建的)用户,也只能分配自己管理范围内(自己创建)的角色,这样可以做到各司其职,管理清晰。



从数据库结构来看,一共设计了七个表(table),表名及功能分别如下:

1、  操作表

用来存放用户自定义的各种功能操作,比如新增、修改、删除等,以前见过的设计是将操作直接放在模块下面管理,这就导致了常见的操作通常要重复添加N次(比如大部分模块都会有新增修改等操作),如果模块比较多就显得非常繁琐且容易出错。现在把它放在一个单独的表里面进行管理就可以避免这一问题出现,流程也更加清晰。

2、  模块表

顾名思义就是将系统中的各模块进行管理,支持无限级模块

3、  模块操作关联表

各模块有什么样的操作就在这里体现,在模块与操作之间建立起关联形成权限点,以便给角色授权。

4、  角色表

对角色基本信息进行管理。用户可以自定义成各种各样的角色,比如局长、校长、总经理等。

5、  角色权限表

将角色与系统中的权限点关联起来,也就是完成授权的动作。

6、  用户表

将用户的最基本的信息进行管理(在正常的业务系统中可进行扩展用户信息),比如姓名、有效期等。

7、  用户角色表

在用户与角色之间建立起关联,给用户授予哪些角色权限(同一用户可以有多个角色),也可以按角色添加用户,比如将“员工”角色授予公司所有人,而不用按用户一个一个地授权。

 

 

 

个人签名

-------------------------------------

 

图盾 淘宝保护 保护图片 图片防盗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值