/**
* Copyright (C) 2014 KAIST
* @author Janggwan Im <limg00n@kaist.ac.kr>
*/
package org.fosstrak.ale.server.ac;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.fosstrak.ale.exception.SecurityException;
public interface RoleBasedAccessController {
public abstract void updateClientid(String userId, String password,
List<String> roleNames) throws SecurityException;
public abstract void updatePermission(String permObjName,
String permOpName, Set<String> roles) throws SecurityException;
public abstract void defineClientid(String userId, String password,
List<String> roleNames) throws SecurityException;
public abstract void undefineClientid(String userId)
throws SecurityException;
public abstract void defineRole(String roleName) throws SecurityException;
public abstract void undefineRole(String roleName) throws SecurityException;
public abstract void definePermission(String permObjName, String permOpName)
throws SecurityException;
public abstract void undefinePermission(String permObjName,
String permOpName) throws SecurityException;
public abstract void assignPermissionToRole(String roleName,
String permObjName, String opName) throws SecurityException;
public abstract void deassignPermissionToRole(String roleName,
String permObjName, String permOpName) throws SecurityException;
public abstract void assignRoleToClientid(String userId, String roleName)
throws SecurityException;
public abstract void deassignRoleToClientid(String userId, String roleName)
throws SecurityException;
public abstract void addPermObj(String objName) throws SecurityException;
public abstract void deletePermObj(String objName) throws SecurityException;
public abstract List<User> findUsers(String userName)
throws SecurityException;
public abstract List<Role> findRoles(String roleName)
throws SecurityException;
public abstract List<Permission> findPermissions(String permObjName,
String permOpName) throws SecurityException;
public abstract void createSession(String userId, String password)
throws SecurityException;
public abstract boolean checkAccess(String objName, String opName)
throws SecurityException;
}