【扩展】1.4vip-club权限校验#Permission #else 功能

vip1.4中,有个PermissionDirective类,使用方法是:

 * #permission("/admin/project/edit")
 * 		<a href="/admin/project/edit?id=#(x.id)">
 * 	  	  <i class="fa fa-pencil" title="修改"></i>
 * 		</a>
 * #end

可是这个方法没有#else

在老大哥的指点下,扩展完毕:

config.java

	@Override
	public void configEngine(Engine me) {
		// TODO Auto-generated method stub
		me.addSharedObject("PermKit", new PermKit());
	}
public class PermKit {

	public boolean has(String str){
		Account account = AdminAuthInterceptor.getThreadLocalAccount();
		if (AdminAuthService.me.isSuperAdmin(account.getId())) {
			return true;
		} else {
			if (PermissionDirective.hasPermission(account.getId(), str)) {
				return true;
			}
		}
		return false;
	}
	
}
html:
<select class="form-control" #if(!PermKit.has("/admin/changUserStatus")) disabled="disabled" #end>


AdminAuthService里面有两个方法,一个是判断是不是最高权限,另一个是查一下数据库判断这个角色拥有的权限。直接用vip-club的代码即可。


评论区

JFinal

2018-06-06 11:54

12 行代码搞定这个功能,干净利落,楼主潜力很大啊

fmpoffice

2018-06-07 08:56

@JFinal 是jfinal赋予的内在魅力!^_^

JFinal

2018-06-07 10:13

@fmpoffice jfinal 3.5 打算添加一个 AuthKit,里面添加 hasPermission 与 hasRole, 一个工具类搞定所有

阿强

2018-06-08 14:39

@JFinal hasRole绝对需要