我的权限组件

21 篇文章 0 订阅
20 篇文章 2 订阅

       首先,设置三种要素:用户、群组、角色。

              用户为登录用,对应到人。群组对应为用户的集合,是一种特殊的用户。角色为一组权限项的集合,用户(群组)都有各自的角色。

 

       权限的实现通过Permission类和Rule类来实现。

       Permission供外部调用,Rule为一个接口,为权限判断规则。

Permission是一个抽象类,有以下方法

    public boolean hasPermission(User user,HashMap oldData,Input input);

    public String getPermissionName();

    public abstract Rule[] getDenyRule();

    public abstract Rule[] getAcceptRule();

hasPermission方法供外部调用,已实现,实现方法为先根据getDenyRule()得到的规则判断权限是否被阻拦,再根据getAcceptRule来判断是否有权限。

       Rule接口的接品则由用户自行定义,随包附带了一个已实现的Rule,实现的功能如下:

先寻找User的所有角色,然后判断角色是否有权限,如果无权限则寻找其父级群组,再取父级群组的所有角色进行判断是否有权限,如果无权限则再往上级群组找,直到找最上一级还是无权限才判断为无权限。

       现实现判断权限有无权限的方式已可以达成的有以下三种:

1、  是否有操作的权限。

2、  是否有操作的子操作的权限。

3、  在数据为某条件时有操作(子操作)的权限。

 

在进行程序开发时,第一步,编写User,Group,Role的实现类,已提供了一套XML的实现类。

第二步,写配置文件,进行权限项的配置。

第三步,在程序中要进行权限判断的地方调用Permission.hasPermission方法即可。

             

       以后我会把代码逐天贴出来。

 

如果大家有什么别的种类权限要进行判断的,请给我发送邮件,我继续改善,欢迎大家多提意见。

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值