package cn.dreampie.common.plugin.shiro;
import cn.dreampie.common.plugin.shiro.plugin.AuthzHandler;
import cn.dreampie.common.plugin.shiro.plugin.JdbcAuthzService;
import cn.dreampie.common.plugin.shiro.plugin.JdbcPermissionAuthzHandler;
import cn.dreampie.function.user.Permission;
import cn.dreampie.function.user.Role;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by wangrenhui on 14-1-7.
*/
public class MyJdbcAuthzService implements JdbcAuthzService {
@Override
public Map<String, AuthzHandler> getJdbcAuthz() {
//加载数据库的url配置
Map<String, AuthzHandler> authzJdbcMaps = new HashMap<String, AuthzHandler>();
// Map<String, AuthzHandler> authzJdbcMaps = new TreeMap<String, AuthzHandler>(
// new Comparator<String>() {
// public int compare(String k1, String k2) {
// return new Integer(k2.length()).compareTo(k1.length());
// }
//
// });
//遍历角色
List<Role> roles = Role.dao.findAll();
List<Permission> permissions = null;
for (Role role : roles) {
//角色可用
if (role.getDate("daleted_at") == null) {
permissions = Permission.dao.findByRole("", role.get("id"));
//遍历权限
for (Permission permission : permissions) {
//权限可用
if (permission.getDate("daleted_at") == null) {
if (permission.getStr("url") != null && !permission.getStr("url").isEmpty()) {
authzJdbcMaps.put(permission.getStr("url"), new JdbcPermissionAuthzHandler(permission.getStr("value")));
}
}
}
}
}
return authzJdbcMaps;
}
}