package org.aperteworkflow.editor.ui.permission; import org.aperteworkflow.editor.domain.Permission; import java.util.Collection; public interface PermissionProvider { /** * Get all the permissions defined by the user * @return Permissions */ Collection<Permission> getPermissions(); /** * Get all the permission definitions allowed by the user * @return Permission definitions */ Collection<PermissionDefinition> getPermissionDefinitions(); /** * Can user create own {@link PermissionDefinition} regardless of what was returned by the provider. * This allows to create custom privilege name inside the permission set. * @return True if it's allowed. */ boolean isNewPermissionDefinitionAllowed(); void addPermission(Permission permission); void removePermission(Permission permission); }