blob: 8c55953922ef98b4d486ee442deedc3766a03971 [file] [log] [blame]
package de.ids_mannheim.korap.interfaces.db;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.resources.KustvaktResource;
import de.ids_mannheim.korap.security.Parameter;
import de.ids_mannheim.korap.security.PolicyCondition;
import de.ids_mannheim.korap.security.SecurityPolicy;
import de.ids_mannheim.korap.user.User;
import java.util.List;
/**
* User: hanl
* Date: 10/31/13
* Time: 3:01 PM
*/
public interface PolicyHandlerIface {
/**
* @param policy
* @param user
* @throws KustvaktException
*/
int createPolicy (SecurityPolicy policy, User user)
throws KustvaktException;
/**
* @param target
* @param user
* @param perm
* @return
*/
List<SecurityPolicy>[] getPolicies (Integer target, User user, Byte perm);
List<SecurityPolicy> getPolicies (PolicyCondition condition,
Class<? extends KustvaktResource> clazz, Byte perm);
/**
* @param policy
* @return
* @throws KustvaktException
*/
void mapConstraints (SecurityPolicy policy) throws KustvaktException;
/**
* @param target
* @param user
* @param perm
* @return
*/
List<SecurityPolicy>[] getPolicies (String target, User user, Byte perm);
/**
* @param path
* @param user
* @param perm
* @return
*/
// todo: refactor
List<SecurityPolicy>[] findPolicies (String path, User user, Byte perm);
/**
* @param path
* @param user
* @param b
* @param clazz
* @return
* @throws KustvaktException
*/
List<KustvaktResource.Container> getDescending (String path, User user,
Byte b, Class<? extends KustvaktResource> clazz)
throws KustvaktException;
/**
* @param path
* @param user
* @param b
* @param clazz
* @return
* @throws KustvaktException
*/
List<KustvaktResource.Container> getAscending (String path, User user,
Byte b, Class<? extends KustvaktResource> clazz)
throws KustvaktException;
/**
* @param id
* @param user
*/
int deleteResourcePolicies (String id, User user) throws KustvaktException;
/**
* @param policy
* @param user
* @return
* @throws KustvaktException
*/
int deletePolicy (SecurityPolicy policy, User user)
throws KustvaktException;
/**
* @param policy
* @param user
* @return
* @throws KustvaktException
*/
int updatePolicy (SecurityPolicy policy, User user)
throws KustvaktException;
/**
* checks if a similar policy already exists
*
* @param policy
* @return
* @throws KustvaktException
*/
int checkPolicy (SecurityPolicy policy, User user) throws KustvaktException;
/**
* @param user
* @param name
* @param owner
* @return
* @throws KustvaktException
*/
int matchCondition (User user, String name, boolean owner)
throws KustvaktException;
/**
* @param username
* @param condition
* @param admin
* @return
* @throws KustvaktException
*/
int addToCondition (String username, PolicyCondition condition,
boolean admin) throws KustvaktException;
/**
* @param usernames
* @param condition
* @param status
* @throws KustvaktException
*/
//todo: add a handler user id, to skip the matching step in the corpusmanagement segment!
int[] addToCondition (List<String> usernames, PolicyCondition condition,
boolean status) throws KustvaktException;
/**
* @param usernames
* @param condition
* @throws KustvaktException
*/
void removeFromCondition (List<String> usernames, PolicyCondition condition)
throws KustvaktException;
/**
* @param param
* @throws KustvaktException
*/
int createParamBinding (Parameter param) throws KustvaktException;
/**
* @param condition
* @return
* @throws KustvaktException
*/
List<String> getUsersFromCondition (PolicyCondition condition)
throws KustvaktException;
/**
* @param policy
* @throws KustvaktException
*/
int removeParamBinding (SecurityPolicy policy) throws KustvaktException;
int size ();
}