Class SimpleObjectPermissionSet

java.lang.Object
org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet
All Implemented Interfaces:
ObjectPermissionSet, PermissionSet<ObjectPermission>

public class SimpleObjectPermissionSet extends Object implements ObjectPermissionSet
A read-only implementation of ObjectPermissionSet which uses a backing Set of Permissions to determine which permissions are present.
  • Constructor Details

    • SimpleObjectPermissionSet

      public SimpleObjectPermissionSet()
      Creates a new empty SimpleObjectPermissionSet. If you are not extending SimpleObjectPermissionSet and only need an immutable, empty ObjectPermissionSet, consider using ObjectPermissionSet.EMPTY_SET instead.
    • SimpleObjectPermissionSet

      public SimpleObjectPermissionSet(Collection<String> identifiers, Collection<ObjectPermission.Type> types)
      Creates a new SimpleObjectPermissionSet which contains permissions for all possible unique combinations of the given identifiers and permission types.
      Parameters:
      identifiers - The identifiers which should be associated permissions having each of the given permission types.
      types - The types of permissions which should be granted for each of the given identifiers.
    • SimpleObjectPermissionSet

      public SimpleObjectPermissionSet(Collection<String> identifiers)
      Creates a new SimpleObjectPermissionSet which contains only READ permissions for each of the given identifiers.
      Parameters:
      identifiers - The identifiers which should each be associated with READ permission.
    • SimpleObjectPermissionSet

      public SimpleObjectPermissionSet(Set<ObjectPermission> permissions)
      Creates a new SimpleObjectPermissionSet which contains the permissions within the given Set.
      Parameters:
      permissions - The Set of permissions this SimpleObjectPermissionSet should contain.
  • Method Details

    • setPermissions

      protected void setPermissions(Set<ObjectPermission> permissions)
      Sets the Set which backs this SimpleObjectPermissionSet. Future function calls on this SimpleObjectPermissionSet will use the provided Set.
      Parameters:
      permissions - The Set of permissions this SimpleObjectPermissionSet should contain.
    • getPermissions

      public Set<ObjectPermission> getPermissions()
      Description copied from interface: PermissionSet
      Returns a Set which contains all permissions granted within this permission set.
      Specified by:
      getPermissions in interface ObjectPermissionSet
      Specified by:
      getPermissions in interface PermissionSet<ObjectPermission>
      Returns:
      A Set containing all permissions granted within this permission set.
    • hasPermission

      public boolean hasPermission(ObjectPermission.Type permission, String identifier) throws org.apache.guacamole.GuacamoleException
      Description copied from interface: ObjectPermissionSet
      Tests whether the permission of the given type is granted for the object having the given identifier.
      Specified by:
      hasPermission in interface ObjectPermissionSet
      Parameters:
      permission - The permission to check.
      identifier - The identifier of the object affected by the permission being checked.
      Returns:
      true if the permission is granted, false otherwise.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while checking permissions, or if permissions cannot be checked due to lack of permissions to do so.
    • addPermission

      public void addPermission(ObjectPermission.Type permission, String identifier) throws org.apache.guacamole.GuacamoleException
      Description copied from interface: ObjectPermissionSet
      Adds the specified permission for the object having the given identifier.
      Specified by:
      addPermission in interface ObjectPermissionSet
      Parameters:
      permission - The permission to add.
      identifier - The identifier of the object affected by the permission being added.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while adding the permission, or if permission to add permissions is denied.
    • removePermission

      public void removePermission(ObjectPermission.Type permission, String identifier) throws org.apache.guacamole.GuacamoleException
      Description copied from interface: ObjectPermissionSet
      Removes the specified permission for the object having the given identifier.
      Specified by:
      removePermission in interface ObjectPermissionSet
      Parameters:
      permission - The permission to remove.
      identifier - The identifier of the object affected by the permission being added.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while removing the permission, or if permission to remove permissions is denied.
    • getAccessibleObjects

      public Collection<String> getAccessibleObjects(Collection<ObjectPermission.Type> permissionTypes, Collection<String> identifiers) throws org.apache.guacamole.GuacamoleException
      Description copied from interface: ObjectPermissionSet
      Tests whether this user has the specified permissions for the objects having the given identifiers. The identifier of an object is returned in a new collection if at least one of the specified permissions is granted for that object.
      Specified by:
      getAccessibleObjects in interface ObjectPermissionSet
      Parameters:
      permissionTypes - The permissions to check. An identifier will be included in the resulting collection if at least one of these permissions is granted for the associated object
      identifiers - The identifiers of the objects affected by the permissions being checked.
      Returns:
      A collection containing the subset of identifiers for which at least one of the specified permissions is granted.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while checking permissions, or if permissions cannot be checked due to lack of permissions to do so.
    • addPermissions

      public void addPermissions(Set<ObjectPermission> permissions) throws org.apache.guacamole.GuacamoleException
      Description copied from interface: PermissionSet
      Adds the specified permissions, if not already granted. If a specified permission is already granted, no operation is performed regarding that permission.
      Specified by:
      addPermissions in interface ObjectPermissionSet
      Specified by:
      addPermissions in interface PermissionSet<ObjectPermission>
      Parameters:
      permissions - The permissions to add.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while adding the permissions, or if permission to add permissions is denied.
    • removePermissions

      public void removePermissions(Set<ObjectPermission> permissions) throws org.apache.guacamole.GuacamoleException
      Description copied from interface: PermissionSet
      Removes each of the specified permissions, if granted. If a specified permission is not granted, no operation is performed regarding that permission.
      Specified by:
      removePermissions in interface ObjectPermissionSet
      Specified by:
      removePermissions in interface PermissionSet<ObjectPermission>
      Parameters:
      permissions - The permissions to remove.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while removing the permissions, or if permission to remove permissions is denied.