package frame.role; import java.util.HashMap; import java.util.Map; import frame.object.http.Path; import frame.util.Util; public class UserRightContainer { private static UserRightContainer instance; private Map roleMap; private Map dataFilterMap; public static synchronized UserRightContainer getInstance() { if (instance == null) { instance = new UserRightContainer(); } return instance; } private UserRightContainer() { roleMap = new HashMap(); dataFilterMap = new HashMap(); } public boolean existsPageRight(String logcode, Path path) { Role role = roleMap.get(logcode); if (role == null) { return false; } return role.containsPath(path); } public boolean existsDataRight(String logcode, String data) { Role role = roleMap.get(logcode); if (role == null) { return false; } return role.containsData(data); } public boolean existsCallRight(String logcode, Path path) { return true; } public String getDataFilter(OnlineUser onlineUser, String data) { String template = dataFilterMap.get(data); if (template == null) { return null; } return onlineUser.getRowfilter(data, template); } public void addDataRight(String dataName, String where) { if (Util.isEmptyStr(dataName) || Util.isEmptyStr(where)) { return; } dataName = dataName.toLowerCase(); if (!dataFilterMap.containsKey(dataName)) { dataFilterMap.put(dataName, where); } } public void addRoleResource(String roleName, String resource) { if (Util.isEmptyStr(roleName)) { return; } roleName = roleName.toLowerCase(); Role role = roleMap.get(roleName); if (role == null) { role = new Role(roleName); roleMap.put(roleName, role); } role.addResource(resource); } }