package eu.dnetlib.client.managers;

/**
 * Is responsible for managing user rights and permissions client-side
 * 
 * @author Eri
 * 
 */
public interface PermissionsManager {

	/**
	 * Returns true/false , depending on whether the user with @userId is
	 * permitted to execute the given @action at the current Component with id @componentId
	 * and class @componentClass. Needs also the @CuratorId of the component.
	 * 
	 * 
	 * @param userId
	 * @param componentId
	 * @param componentClass
	 * @param CuratorId
	 * @param action
	 * @return
	 */
	public boolean isPermitted(final String userId, final String componentId, final String componentClass,
			final String CuratorId, final String action);

	boolean isPermitted(String userId, String componentClass, String action);
	public boolean isUserPermitted(final String userId, final String componentId, String action) ;

}
