Interface UserAccessor

    • Field Detail

      • GROUP_CONFLUENCE_USERS

        @Deprecated
        static final String GROUP_CONFLUENCE_USERS
        Deprecated.
        since 5.2. Use @link{com.atlassian.confluence.setup.settings.Settings#getDefaultUsersGroup()} instead.
        See Also:
        Constant Field Values
      • GROUP_CONFLUENCE_ADMINS

        static final String GROUP_CONFLUENCE_ADMINS
        The name of the group with special administration privileges in the application.
        See Also:
        Constant Field Values
      • DEFAULT_GROUP_NAMES

        @Deprecated
        static final List<String> DEFAULT_GROUP_NAMES
        Deprecated.
        since 5.2. Use @link{#getAllDefaultGroupNames()} instead.
      • PROFILE_PICTURE_BUILTIN_PATH

        static final String PROFILE_PICTURE_BUILTIN_PATH
        Relative path to default profile pictures in the web application, used to determine whether a user has uploaded a custom profile picture.
        See Also:
        Constant Field Values
    • Method Detail

      • getUser

        @Deprecated
        com.atlassian.user.User getUser​(String name)
        Deprecated.
        since 5.2. See getUserByName(String)
        Returns the user with the specified name, or null if the user doesn't exist or the name is null. Note that use rname lookups are case-insensitive, so the user you get back may not have exactly the same name as the name passed to this method.
        Specified by:
        getUser in interface UserAccessor
        Parameters:
        name - the user name of the user
        Returns:
        the User with the supplied user name or null.
      • getUserByName

        @Nullable ConfluenceUser getUserByName​(String name)
        Returns the ConfluenceUser with the supplied user name or null if the user doesn't exist or the supplied name is null.

        Note that user name lookups are case-insensitive, so the user you get back may not have exactly the same name as the name passed to this method.

        Specified by:
        getUserByName in interface ConfluenceUserResolver
        Parameters:
        name - the user name of the user
        Returns:
        the ConfluenceUser with the supplied user name or null.
        Since:
        5.2
      • getExistingUserByKey

        @Nullable ConfluenceUser getExistingUserByKey​(com.atlassian.sal.api.user.UserKey key)
        Returns the user with the specified user key, or null if the user doesn't exist or the key is null.
        Specified by:
        getExistingUserByKey in interface ConfluenceUserResolver
        Since:
        5.3
      • exists

        boolean exists​(String name)
        Returns true if a user exists with the given username. This method is significantly faster than getUser(name) != null.
        Specified by:
        exists in interface UserExistenceChecker
        Parameters:
        name - username of the user
        Returns:
        true if a user exists with the given username
        Since:
        5.2
      • createUser

        ConfluenceUser createUser​(com.atlassian.user.User userTemplate,
                                  com.atlassian.user.security.password.Credential password)
        Specified by:
        createUser in interface UserAccessor
      • isReadOnly

        boolean isReadOnly​(com.atlassian.user.User user)
        Returns true if the user cannot be modified or removed. However, returning false does necessarily confirm that the user can be modified or removed. Depending on the user management configuration, it is not always possible for Confluence to determine whether a user is read-only.

        In an internal-only user management configuration, this method always returns false.

      • isReadOnly

        boolean isReadOnly​(com.atlassian.user.Group group)
        Returns true if the group cannot be modified or removed. However, returning false does necessarily confirm that the group can be modified or removed. Depending on the user management configuration, it is not always possible for Confluence to determine whether a group is read-only. Indeed, groups can span across multiple directories with different access control mechanisms, so it may be possible to modify certain memberships of a group but not others.

        In an internal-only user management configuration, this method always returns false.

      • getUserProfilePicture

        ProfilePictureInfo getUserProfilePicture​(@Nullable com.atlassian.user.User user)
        Retrieve the path to a user's personal picture
        Specified by:
        getUserProfilePicture in interface UserProfilePictureAccessor
        Parameters:
        user - the user whose picture to look up.
        Returns:
        The path to a user's personal picture, or null if they don't have one set.
      • isSuperUser

        @Deprecated
        boolean isSuperUser​(com.atlassian.user.User user)
        Deprecated.
        since 3.5
        Return true is the user is a super user. This should not be used to infer any special permission exempt behaviours. In general, relying on group memberships for special behaviour is a bad idea. Permission checks in the application like PermissionManager.hasPermission(User, Permission, Object) already take care of super-user permission exempt checks and more. If checking for exemption from any permission checks is still required explicitly, use PermissionManager.isConfluenceAdministrator(User) instead. It also takes care of more checks than a group-membership for permission exemption. e.g. Checking exemptions before applying permission related query and/or filter, see AlphabeticalListPagesAction.getFilter(ConfluenceUser)
        Parameters:
        user - the user to check for (the null user will always return false)
        Returns:
        true if the user is super-user, false otherwise.
      • getGroupsAsList

        List<com.atlassian.user.Group> getGroupsAsList()
      • getMembers

        Iterable<ConfluenceUser> getMembers​(com.atlassian.user.Group group)
        Returns users who are members of the specified group (either directly or as a member of a nested group). Returns an empty iterable if the group is null or the group doesn't exist.

        Elements are generated on demand and it is recommended to fetch only as many elements as are needed.

        Parameters:
        group - group to get members for
        Returns:
        users who are members of the specified group
      • getGroupNames

        List<String> getGroupNames​(com.atlassian.user.User user)
        Gets the list of group names representing the groups the passed in user is a member of.
        Parameters:
        user - the user to perform the membership check for
        Returns:
        a list of group names
      • getGroupNamesForUserName

        List<String> getGroupNamesForUserName​(String userName)
        Gets the list of group names representing the groups the passed in user is a member of.
        Parameters:
        userName - the name of the user to perform the membership check for
        Returns:
        a list of group names
      • getWriteableGroups

        List<com.atlassian.user.Group> getWriteableGroups()
        Gets all editable groups. That is, returns any groups that belong to read/write repositories. Groups in readonly repositories that are ReadOnly are not returned.
        Returns:
        list of Groups that can be edited.
      • getPropertySet

        @Deprecated
        com.opensymphony.module.propertyset.PropertySet getPropertySet​(com.atlassian.user.User user)
        Deprecated.
        since 5.2 Plugins should use UserSettingsService.
        Specified by:
        getPropertySet in interface UserAccessor
      • getPropertySet

        @Deprecated
        com.opensymphony.module.propertyset.PropertySet getPropertySet​(ConfluenceUser user)
        Deprecated.
        since 7.7 Plugins should use UserSettingsService.
        Parameters:
        user -
        Returns:
        the property set for the supplied user
        Since:
        5.2
      • countLicenseConsumingUsers

        int countLicenseConsumingUsers()
        Returns the number of users which have access to use Confluence AND consume a Confluence license. Callers are strongly recommended to use the UserChecker.getNumberOfRegisteredUsers() to retrieve this info, as that caches its results.
        Since:
        5.5
        See Also:
        UserChecker
      • findUsersAsList

        List<com.atlassian.user.User> findUsersAsList​(com.atlassian.user.search.query.Query<com.atlassian.user.User> search)
                                               throws com.atlassian.user.EntityException
        Throws:
        com.atlassian.user.EntityException
      • setUserProfilePicture

        void setUserProfilePicture​(com.atlassian.user.User user,
                                   Attachment attachment)
        Set the user profile picture to the given attachment. The attachment should be an image attached to that user's personal information, of size 48x48. No check is performed in this method that the image is valid or the right size.
        Parameters:
        user - the user to set a profile picture for
        attachment - the attachment containing the user's profile picture
        Throws:
        IllegalArgumentException - if the image is not attached to the user's personal information
      • setUserProfilePicture

        void setUserProfilePicture​(com.atlassian.user.User targetUser,
                                   String imagePath)
        Set the user profile picture to a built-in image. The path should be the web-application-root-relative path to the image to be used as the user's profile picture and should be size 48x48. Neither are checked by the implementation
        Parameters:
        targetUser - the user to set a profile picture for
        imagePath - the image path to that picture.
      • getAllDefaultGroupNames

        @Deprecated
        List<String> getAllDefaultGroupNames()
        Deprecated.
        Since 5.2. This method is vague and returns a collection containing the result of Settings.getDefaultUsersGroup() and GROUP_CONFLUENCE_ADMINS. Clients should explicitly decide what they need and use that.
        Get the list of default group names.
        Returns:
        a list with the default group names.
      • renameUser

        ConfluenceUser renameUser​(ConfluenceUser user,
                                  String newUsername)
                           throws com.atlassian.user.EntityException
        Updates the username of the given user.
        Parameters:
        user - user to rename
        newUsername - username to use for renaming
        Returns:
        renamed user
        Throws:
        com.atlassian.user.impl.EntityValidationException - if the new username does not meet the username requirements
        com.atlassian.user.EntityException - if the operation is not allowed for the user
        UserManagementOperationFailedException - if the operation fails for unknown reason
        com.atlassian.user.impl.DuplicateEntityException - if the username is already taken
        Since:
        5.2
      • getUsersByUserKeys

        List<ConfluenceUser> getUsersByUserKeys​(List<com.atlassian.sal.api.user.UserKey> userKeys)
        Returns a list of ConfluenceUser with the supplied UserKeys or an empty list if the users do not exist. This method returns ConfluenceUser instances with pre-populated backing EmbeddedCrowdUser.
        Specified by:
        getUsersByUserKeys in interface ConfluenceUserResolver
        Parameters:
        userKeys - the user keys
        Returns:
        the list of ConfluenceUsers with UserKeys
        Since:
        6.12.0
      • getGroupsByGroupNames

        List<com.atlassian.user.Group> getGroupsByGroupNames​(List<String> groupNames)
        Returns a list of Group objects where the names match that of the provided list of group names. If no names are provided an empty list will be returned.
        Parameters:
        groupNames - the list group names for which the matching Group objects must be returned
        Returns:
        the list of resolved groups
        Since:
        7.5.0
      • countUnsyncedUsers

        int countUnsyncedUsers()
        Get a count of all unsynced users in Confluence. An unsynced user is a user that was managed in an external directory but has since been removed from the directory without being deleted in Confluence.
        Returns:
        the total number of all unsynced users.
        Since:
        6.13.0
      • isDeactivated

        @Deprecated
        boolean isDeactivated​(com.atlassian.user.User user)
        Deprecated.
        Description copied from interface: UserAccessor
        Returns true if the user exists and is unable to log in, otherwise false. Returns false if the user is null.
        Specified by:
        isDeactivated in interface UserAccessor
        Returns:
        true if the user exists and is unable to log in, otherwise false.
      • isDeactivated

        @Deprecated
        boolean isDeactivated​(String username)
        Deprecated.
        Description copied from interface: UserAccessor
        Returns true if the user with the specified username exists and is unable to log in, otherwise false. Returns false if the username is null.
        Specified by:
        isDeactivated in interface UserAccessor
        Returns:
        true if the user with the specified username exists and is unable to log in, otherwise false.
      • alterPassword

        void alterPassword​(com.atlassian.user.User user,
                           String plainTextPassword,
                           String token)
                    throws com.atlassian.user.EntityException
        Throws:
        com.atlassian.user.EntityException