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的代码即可。