通用权限系统的一些想法

  这几天闲来无事,想做一个通用权限系统。原来开发的系统,权限这一块都是写死的,每个系统权限都要重新写逻辑,曾经想过写个通用的,但是思路一直没有捋顺,平时也比较忙,也就没有深究。 这几天阳光明媚,空气清新,浑身舒畅,突然之间灵光乍现,让我想到一个通用权限的实现方法。现在我把思路给大家分享一下。

  之前在园里看到有人 发 .net 通用权限系统系列的博文,但是太长,没看, 我现在这个思路也许跟他们会有雷同,但绝属巧合。

  所谓的通用权限系统,真是的是通用的吗,不需要写代码吗?其实不然,腾讯百度的开放平台可通用吧,还是要写代码,所谓通用只是把相对独立的功能封装起来,方便调用而已。通用权限也是如此,我们可以把权限的判断进行封装,然后在业务逻辑处拿出来调用就可以了,比如如下代码:

if(power.has('A001'))
{
     //执行添加操作
}

if(power.has('A002'))
{
     //执行删除操作
}

A001是权限代码,名字自己随便起,这里代表添加权限。 这段代码的意思就是,如果有A001的权限就可以执行添加操作,有A002的权限就可以执行删除操作。 power 就是封装的权限类,我们只需要在有权限控制的业务逻辑处加入权限判断代码“power.has('权限编号')” 就实现了所有业务的权限控制。

  接下来就是给用户分配权限,我们不知道以后这个通用权限系统会增加什么功能模块,所以分配权限模块要做成动态可配置的,功能模块的操作权限可自定义添加,为每个操作分配权限代码,以供power类调用进行权限判断。

  有了以上两部分(权限判断、权限分配),通用权限的思路就基本出来了。目前我也是在思考,还没有到编码阶段,等系统做出来后再与大家分享。

 

 

posted @ 2014-03-15 09:42  襄阳老兵  阅读(270)  评论(0编辑  收藏  举报