Class CachingConfluenceUserDao
- java.lang.Object
-
- com.atlassian.confluence.impl.user.persistence.dao.CachingConfluenceUserDao
-
- All Implemented Interfaces:
ConfluenceUserDao
public class CachingConfluenceUserDao extends Object implements ConfluenceUserDao
This class is responsible for caching user keys by username.- Since:
- 5.8
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
countUnsyncedUsers()
Get a count of all unsynced users in Confluence.void
create(ConfluenceUser user)
Create a new ConfluenceUser.static CachingConfluenceUserDao
create(ConfluenceUserDao delegate, com.atlassian.cache.CacheFactory cacheFactory)
void
deactivateUser(String username)
Deactivates user.ConfluenceUser
findByKey(@Nullable com.atlassian.sal.api.user.UserKey key)
Retrieve a ConfluenceUser by the user key.Map<com.atlassian.sal.api.user.UserKey,Optional<ConfluenceUser>>
findByKeys(Set<com.atlassian.sal.api.user.UserKey> userkeys)
Performs a bulk lookup of multipleConfluenceUser
s.ConfluenceUser
findByUsername(@Nullable String username)
Find the ConfluenceUser with the given user name.List<ConfluenceUser>
findConfluenceUsersByLowerNames(Iterable<String> lowerNames)
Find allConfluenceUser
which have the given lowerNames.Map<com.atlassian.sal.api.user.UserKey,String>
findLowerNamesByKeys(Iterable<com.atlassian.sal.api.user.UserKey> keys)
Bulk operation to find lowercase name corresponding to user key.Map<String,com.atlassian.sal.api.user.UserKey>
findUserKeysByLowerNames(Iterable<String> names)
Bulk operation to find user key corresponding to lowercase name.Set<ConfluenceUser>
getAll()
List<com.atlassian.sal.api.user.UserKey>
getAllUserKeys()
Currently for testing purpose onlyboolean
isDeletedUser(ConfluenceUser user)
Check whether or not a user has been deleted completely from the application.boolean
isUnsyncedUser(ConfluenceUser user)
Check whether or not a user exists in the application as unsynced.void
remove(ConfluenceUser user)
Remove the supplied ConfluenceUser from persistence.ConfluenceUser
rename(ConfluenceUser userToRename, String newUsername, boolean overrideExisting)
Renames a userConfluenceUser
rename(String oldUsername, String newUsername, boolean overrideExisting)
Renames a userList<ConfluenceUser>
searchUnsyncedUsers(String searchParam)
Search all unsynced users, whose account has been disconnected from an external directory, i.e.void
update(ConfluenceUser user)
Change a property of an existing ConfluenceUser.
-
-
-
Method Detail
-
create
public static CachingConfluenceUserDao create(ConfluenceUserDao delegate, com.atlassian.cache.CacheFactory cacheFactory)
- Since:
- 7.5
-
create
public void create(ConfluenceUser user)
Description copied from interface:ConfluenceUserDao
Create a new ConfluenceUser.- Specified by:
create
in interfaceConfluenceUserDao
-
update
public void update(ConfluenceUser user)
Description copied from interface:ConfluenceUserDao
Change a property of an existing ConfluenceUser.- Specified by:
update
in interfaceConfluenceUserDao
-
remove
public void remove(ConfluenceUser user)
Description copied from interface:ConfluenceUserDao
Remove the supplied ConfluenceUser from persistence.- Specified by:
remove
in interfaceConfluenceUserDao
-
rename
public ConfluenceUser rename(String oldUsername, String newUsername, boolean overrideExisting)
Description copied from interface:ConfluenceUserDao
Renames a user- Specified by:
rename
in interfaceConfluenceUserDao
- Parameters:
oldUsername
- old username for the usernewUsername
- new username for the useroverrideExisting
- True if possible existing mapping should make way for the renamed one. False for opposite behaviour.- Returns:
- renamed user
-
rename
public ConfluenceUser rename(ConfluenceUser userToRename, String newUsername, boolean overrideExisting)
Description copied from interface:ConfluenceUserDao
Renames a user- Specified by:
rename
in interfaceConfluenceUserDao
- Parameters:
userToRename
- ConfluenceUser object representing user to renamenewUsername
- new username for the useroverrideExisting
- True if possible existing mapping should make way for the renamed one. False for opposite behaviour.- Returns:
- renamed user
-
deactivateUser
public void deactivateUser(String username)
Description copied from interface:ConfluenceUserDao
Deactivates user. Record will stay in user_mapping table, but it will have null in lowerUsername- Specified by:
deactivateUser
in interfaceConfluenceUserDao
- Parameters:
username
- name of the user that should be deactivated
-
findByKey
public ConfluenceUser findByKey(@Nullable com.atlassian.sal.api.user.UserKey key)
Description copied from interface:ConfluenceUserDao
Retrieve a ConfluenceUser by the user key.- Specified by:
findByKey
in interfaceConfluenceUserDao
- Returns:
- a ConfluenceUser with the supplied key
-
findByUsername
public ConfluenceUser findByUsername(@Nullable String username)
Description copied from interface:ConfluenceUserDao
Find the ConfluenceUser with the given user name.Note that username 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:
findByUsername
in interfaceConfluenceUserDao
- Returns:
- a ConfluenceUser with the supplied username.
-
getAll
public Set<ConfluenceUser> getAll()
- Specified by:
getAll
in interfaceConfluenceUserDao
- Returns:
- all the ConfluenceUser
-
findUserKeysByLowerNames
public Map<String,com.atlassian.sal.api.user.UserKey> findUserKeysByLowerNames(Iterable<String> names)
Description copied from interface:ConfluenceUserDao
Bulk operation to find user key corresponding to lowercase name.- Specified by:
findUserKeysByLowerNames
in interfaceConfluenceUserDao
- Returns:
- map of lowercase name by user key
-
findLowerNamesByKeys
public Map<com.atlassian.sal.api.user.UserKey,String> findLowerNamesByKeys(Iterable<com.atlassian.sal.api.user.UserKey> keys)
Description copied from interface:ConfluenceUserDao
Bulk operation to find lowercase name corresponding to user key.- Specified by:
findLowerNamesByKeys
in interfaceConfluenceUserDao
- Returns:
- map of user key by lowercase name
-
isDeletedUser
public boolean isDeletedUser(ConfluenceUser user)
Description copied from interface:ConfluenceUserDao
Check whether or not a user has been deleted completely from the application. This means the user has a known mapping and no backing user and they have been remapped such that their username is equal to their user key.- Specified by:
isDeletedUser
in interfaceConfluenceUserDao
- Returns:
- true if the user has a known mapping, no backing user, and a username equal to their user key, false otherwise (even if the user doesn't exist)
-
isUnsyncedUser
public boolean isUnsyncedUser(ConfluenceUser user)
Description copied from interface:ConfluenceUserDao
Check whether or not a user exists in the application as unsynced. This means that the user's account might have been disconnected from one or more user directories. The user has a known mapping and no backing user, but has not been fully deleted (per the definition ofConfluenceUserDao.isDeletedUser(ConfluenceUser)
). This may include users who have technically been removed through Confluence prior to 6.13.0.- Specified by:
isUnsyncedUser
in interfaceConfluenceUserDao
- Returns:
- true if the user hasn't been deleted but has a known mapping and no backing user, false otherwise (even if the user doesn't exist)
-
searchUnsyncedUsers
public List<ConfluenceUser> searchUnsyncedUsers(String searchParam)
Description copied from interface:ConfluenceUserDao
Search all unsynced users, whose account has been disconnected from an external directory, i.e. a user who has a known mapping but no backing user, but who has not yet been deleted from the application.- Specified by:
searchUnsyncedUsers
in interfaceConfluenceUserDao
- Parameters:
searchParam
- the username parameter to search by- Returns:
- a list of lowercase usernames
-
countUnsyncedUsers
public int countUnsyncedUsers()
Description copied from interface:ConfluenceUserDao
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.- Specified by:
countUnsyncedUsers
in interfaceConfluenceUserDao
- Returns:
- the total number of all unsynced users.
-
findByKeys
public Map<com.atlassian.sal.api.user.UserKey,Optional<ConfluenceUser>> findByKeys(Set<com.atlassian.sal.api.user.UserKey> userkeys)
Description copied from interface:ConfluenceUserDao
Performs a bulk lookup of multipleConfluenceUser
s.- Specified by:
findByKeys
in interfaceConfluenceUserDao
- Parameters:
userkeys
- The set ofUserKey
s- Returns:
- A
Map
ofUserKey
s toOptional
ConfluenceUser
s. EveryUserKey
present in the userkeys parameter will have an entry in this map.
-
findConfluenceUsersByLowerNames
public List<ConfluenceUser> findConfluenceUsersByLowerNames(Iterable<String> lowerNames)
Description copied from interface:ConfluenceUserDao
Find allConfluenceUser
which have the given lowerNames.- Specified by:
findConfluenceUsersByLowerNames
in interfaceConfluenceUserDao
- Parameters:
lowerNames
- the lower names to match against a ConfluenceUser.- Returns:
- a list of confluence users which have the given lowerNames.
-
getAllUserKeys
public List<com.atlassian.sal.api.user.UserKey> getAllUserKeys()
Description copied from interface:ConfluenceUserDao
Currently for testing purpose only- Specified by:
getAllUserKeys
in interfaceConfluenceUserDao
- Returns:
- all user keys
-
-