Interface UserGroupManager

  • All Known Implementing Classes:
    SecuredUserGroupManager, UserGroupManagerImpl

    public interface UserGroupManager
    A user group manager. Responsible for creation, deletion, and etc of user groups.
    Since:
    4.5
    Author:
    Maxim Podkolzine (maxim.podkolzine@jetbrains.com)
    • Field Detail

      • MAX_GROUP_KEY_LENGTH

        static final int MAX_GROUP_KEY_LENGTH
        Maximum length of the group key.
        See Also:
        Constant Field Values
    • Method Detail

      • createUserGroup

        @NotNull
        SUserGroup createUserGroup​(@NotNull
                                   String key,
                                   @NotNull
                                   String name,
                                   @NotNull
                                   String description)
                            throws UserGroupException
        Creates a new user group.

        The key is specified by user, but must be unique among all user groups. An attempt to create a user group with existing key results in exception.

        The name must be unique too. Similarly, in case of duplication an exception is thrown.

        Parameters:
        key - user group key
        name - user group name
        description - user group description
        Returns:
        a newly created user group
        Throws:
        UserGroupException - if specified key already exists
      • deleteUserGroup

        void deleteUserGroup​(@NotNull
                             SUserGroup group)
        Deletes a user group.

        Note: the group would be deleted from all parent groups automatically, and all subgroups will be reattached to the group's parents. group's direct users aren't moved anywhere.

        Parameters:
        group - a group to delete
      • getRootUserGroups

        @NotNull
        Collection<SUserGroup> getRootUserGroups()
        Returns the collection of root user groups, i.e. the ones that are not included in any other group.
        Returns:
        collection of root user groups
        See Also:
        getUserGroups()
      • getHostGroupsOf

        @NotNull
        List<UserGroup> getHostGroupsOf​(@NotNull
                                        User user)
        Returns the list of groups that host specified user (directly).
        Parameters:
        user - the user
        Returns:
        list of host groups
      • getAllHostGroupsOf

        @NotNull
        List<UserGroup> getAllHostGroupsOf​(@NotNull
                                           User user)
        Returns topologically ordered list of all groups containing specified user, directly or through intermediate subgroups.
        Parameters:
        user - the user
        Returns:
        list of all groups containing the user
      • findUserGroupByKey

        @Nullable
        SUserGroup findUserGroupByKey​(@NotNull
                                      String key)
        Given a group key method finds the corresponding user group.
        Parameters:
        key - the user group key
        Returns:
        user group, or null
      • findUserGroupByName

        @Nullable
        SUserGroup findUserGroupByName​(@NotNull
                                       String name)
        Given a group name method finds the corresponding user group.
        Parameters:
        name - the user group name
        Returns:
        user group, or null
      • findUserGroupsByPropertyValue

        @NotNull
        Set<SUserGroup> findUserGroupsByPropertyValue​(@NotNull
                                                      PropertyKey propertyKey,
                                                      @Nullable
                                                      String propertyValue,
                                                      boolean caseSensitive)
        Returns set of the user groups having specified property.
        Parameters:
        propertyKey - property key
        propertyValue - property value
        caseSensitive - whether to perform case sensitive search
        Returns:
        see above
        Since:
        9.0
      • addUserGroupListener

        void addUserGroupListener​(@NotNull
                                  UserGroupListener listener)
        Adds the specified listener to the manager's list.
        Parameters:
        listener - the listener to add
      • removeUserGroupListener

        void removeUserGroupListener​(@NotNull
                                     UserGroupListener listener)
        Removes the listener from the manager's list.
        Parameters:
        listener - the listener to remove
      • getAllUsersGroup

        @NotNull
        SUserGroup getAllUsersGroup()
        Returns the all-users group.
        Returns:
        the all-users group
      • isAllUsersGroup

        boolean isAllUsersGroup​(@NotNull
                                SUserGroup group)
        Returns true, if the specified group is the all-users group.
        Parameters:
        group - the group to check
        Returns:
        true if the specified group is the all-users group, false otherwise