Rev 1050 | Rev 1121 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.content.security;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class RoleManager {private static RoleManager roleManager;private Map<Role, List<Action>> permissions;static{synchronized(RoleManager.class){roleManager = new RoleManager();}}private RoleManager(){//TODO get the object from bdbpermissions = new HashMap<Role, List<Action>>();List<Action> developerActions = new ArrayList<Action>();developerActions.add(Action.EDIT);developerActions.add(Action.VIEW);developerActions.add(Action.COMPLETE);permissions.put(Role.DEVELOPER, developerActions);List<Action> editorActions = new ArrayList<Action>();editorActions.add(Action.EDIT);editorActions.add(Action.VIEW);editorActions.add(Action.COMPLETE);editorActions.add(Action.CREATE);editorActions.add(Action.ASSIGN);editorActions.add(Action.READY);editorActions.add(Action.DELETE);permissions.put(Role.EDITOR, editorActions);permissions.put(Role.ADMIN, editorActions);}public static RoleManager getRoleManager(){return roleManager;}public void createRole(Role role){if(!permissions.containsKey(role)){permissions.put(role, null);}}public void dropRole(Role role){if(permissions.containsKey(role)){permissions.remove(role);}}public void grantPermission(Role type, Action action){List<Action> actions = permissions.get(type);if(actions == null){actions = new ArrayList<Action>();}if(!actions.contains(action)){actions.add(action);}}public void revokePermission(Role type, Action action){List<Action> actions = permissions.get(type);if(actions != null){actions.remove(action);}}public boolean hasPermission(Role role, Action action){return permissions.get(role).contains(action);}}