Class AbstractUserGroup

java.lang.Object
org.apache.guacamole.net.auth.AbstractIdentifiable
org.apache.guacamole.net.auth.AbstractUserGroup
All Implemented Interfaces:
Attributes, Disableable, Identifiable, Permissions, ReadableAttributes, UserGroup
Direct Known Subclasses:
SimpleUserGroup

public abstract class AbstractUserGroup extends AbstractIdentifiable implements UserGroup
Base implementation of UserGroup which provides default implementations of most functions.
  • Constructor Details

    • AbstractUserGroup

      public AbstractUserGroup(boolean caseSensitive)
      Creates a new AbstractUserGroup that considers group names to be case-sensitive or case-insensitive based on the provided case sensitivity flag.
      Parameters:
      caseSensitive - true if group names should be considered case-sensitive, false otherwise.
    • AbstractUserGroup

      public AbstractUserGroup(Environment environment)
      Creates a new AbstractUserGroup that considers group names to be case-sensitive or case-insensitive based on the case sensitivity setting of the provided Environment, as returned by Environment.getCaseSensitivity().
      Parameters:
      environment - The Environment that should determine whether this AbstractUserGroup considers group names to be case-sensitive.
    • AbstractUserGroup

      public AbstractUserGroup()
      Creates a new AbstractUserGroup that considers group names to be case-sensitive or case-insensitive based on the case sensitivity setting of an instance of LocalEnvironment, as returned by Environment.getCaseSensitivity().
  • Method Details

    • getAttributes

      public Map<String,String> getAttributes()
      Returns all attributes associated with this object. The returned map may not be modifiable.

      This implementation simply an immutable, empty map. Implementations that wish to expose custom attributes should override this function.

      Specified by:
      getAttributes in interface ReadableAttributes
      Returns:
      A map of all attribute identifiers to their corresponding values, for all attributes associated with this object, which may not be modifiable.
    • setAttributes

      public void setAttributes(Map<String,String> attributes)
      Sets the given attributes. If an attribute within the map is not supported, it will simply be dropped. Any attributes not within the given map will be left untouched. Attributes which are not declared within the associated UserContext MUST NOT be submitted, but other extensions may manipulate the declared attributes through decorate() and redecorate(). Implementations may optionally allow storage of unsupported attributes. Extensions which rely on other extensions to store their attribute values should verify that such storage is supported by first testing that the attribute value is retrievable via getAttributes() after being set.

      This implementation simply ignores all attributes given. Implementations that wish to support modification of custom attributes should override this function.

      Specified by:
      setAttributes in interface Attributes
      Parameters:
      attributes - A map of all attribute identifiers to their corresponding values.
    • getSystemPermissions

      public SystemPermissionSet getSystemPermissions() throws org.apache.guacamole.GuacamoleException
      Returns all system-level permissions given to this object.

      This implementation simply an immutable, empty permission set. Implementations that wish to expose permissions should override this function.

      Specified by:
      getSystemPermissions in interface Permissions
      Returns:
      A SystemPermissionSet of all system-level permissions granted to this object.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving permissions, or if reading all permissions is not allowed.
    • getConnectionPermissions

      public ObjectPermissionSet getConnectionPermissions() throws org.apache.guacamole.GuacamoleException
      Returns all connection permissions given to this object.

      This implementation simply an immutable, empty permission set. Implementations that wish to expose permissions should override this function.

      Specified by:
      getConnectionPermissions in interface Permissions
      Returns:
      An ObjectPermissionSet of all connection permissions granted to this object.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving permissions, or if reading all permissions is not allowed.
    • getConnectionGroupPermissions

      public ObjectPermissionSet getConnectionGroupPermissions() throws org.apache.guacamole.GuacamoleException
      Returns all connection group permissions given to this object.

      This implementation simply an immutable, empty permission set. Implementations that wish to expose permissions should override this function.

      Specified by:
      getConnectionGroupPermissions in interface Permissions
      Returns:
      An ObjectPermissionSet of all connection group permissions granted to this object.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving permissions, or if reading all permissions is not allowed.
    • getUserPermissions

      public ObjectPermissionSet getUserPermissions() throws org.apache.guacamole.GuacamoleException
      Returns all user permissions given to this object.

      This implementation simply an immutable, empty permission set. Implementations that wish to expose permissions should override this function.

      Specified by:
      getUserPermissions in interface Permissions
      Returns:
      An ObjectPermissionSet of all user permissions granted to this object.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving permissions, or if reading all permissions is not allowed.
    • getUserGroupPermissions

      public ObjectPermissionSet getUserGroupPermissions() throws org.apache.guacamole.GuacamoleException
      Returns all user group permissions given to this object.

      This implementation simply an immutable, empty permission set. Implementations that wish to expose permissions should override this function.

      Specified by:
      getUserGroupPermissions in interface Permissions
      Returns:
      An ObjectPermissionSet of all user group permissions granted to this object.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving permissions, or if reading all permissions is not allowed.
    • getActiveConnectionPermissions

      public ObjectPermissionSet getActiveConnectionPermissions() throws org.apache.guacamole.GuacamoleException
      Returns all permissions given to this object regarding currently-active connections.

      This implementation simply an immutable, empty permission set. Implementations that wish to expose permissions should override this function.

      Specified by:
      getActiveConnectionPermissions in interface Permissions
      Returns:
      An ObjectPermissionSet of all active connection permissions granted to this object.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving permissions, or if reading all permissions is not allowed.
    • getSharingProfilePermissions

      public ObjectPermissionSet getSharingProfilePermissions()
      Returns all sharing profile permissions given to this object.

      This implementation simply an immutable, empty permission set. Implementations that wish to expose permissions should override this function.

      Specified by:
      getSharingProfilePermissions in interface Permissions
      Returns:
      An ObjectPermissionSet of all sharing profile permissions granted to this object.
    • getUserGroups

      public RelatedObjectSet getUserGroups() throws org.apache.guacamole.GuacamoleException
      Returns a set of all readable user groups of which this user group is a member. If permission is granted for the current user to modify the membership of this user group, then the returned set will be mutable, and any such modifications should be made through changes to the returned set.

      This implementation simply an immutable, empty related object set. Implementations that wish to expose group membership should override this function.

      Specified by:
      getUserGroups in interface UserGroup
      Returns:
      The set of all readable user groups of which this user group is a member.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving the user groups.
    • getMemberUsers

      public RelatedObjectSet getMemberUsers() throws org.apache.guacamole.GuacamoleException
      Returns a set of all readable users that are members of this user group. If permission is granted for the current user to modify the members of this group, then the returned set will be mutable, and any such modifications should be made through changes to the returned set.

      This implementation simply an immutable, empty related object set. Implementations that wish to expose group membership should override this function.

      Specified by:
      getMemberUsers in interface UserGroup
      Returns:
      The set all readable users that are members of this user group, which may be mutable.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving the users.
    • getMemberUserGroups

      public RelatedObjectSet getMemberUserGroups() throws org.apache.guacamole.GuacamoleException
      Returns a set of all readable user groups that are members of this user group. If permission is granted for the current user to modify the members of this group, then the returned set will be mutable, and any such modifications should be made through changes to the returned set.

      This implementation simply an immutable, empty related object set. Implementations that wish to expose group membership should override this function.

      Specified by:
      getMemberUserGroups in interface UserGroup
      Returns:
      The set of all readable user groups that are members of this user group, which may be mutable.
      Throws:
      org.apache.guacamole.GuacamoleException - If an error occurs while retrieving the user groups.