Class DefaultSpaceManager
- java.lang.Object
-
- com.atlassian.confluence.spaces.DefaultSpaceManager
-
- All Implemented Interfaces:
SpaceManagerInternal,SpaceManager
@ParametersAreNonnullByDefault public class DefaultSpaceManager extends Object implements SpaceManagerInternal
-
-
Field Summary
-
Fields inherited from interface com.atlassian.confluence.spaces.SpaceManager
GLOBAL_LOGO
-
-
Constructor Summary
Constructors Constructor Description DefaultSpaceManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidarchiveSpace(Space space)Archive the space.@NonNull SpacecreatePersonalSpace(String name, @Nullable String description, com.atlassian.user.User owner)Creates a personal space.@NonNull SpacecreatePrivatePersonalSpace(String name, @Nullable String description, com.atlassian.user.User owner)Create a personal Space for which only the creator has any permissions@NonNull SpacecreatePrivateSpace(String key, String name, @Nullable String description, com.atlassian.user.User creator)Creates a Space for which only the creator has any permissions@NonNull SpacecreateSpace(Space space)Deprecated.since 4.3.@NonNull SpacecreateSpace(String key, String name, @Nullable String description, com.atlassian.user.User creator)voidensureSpaceDescriptionExists(Space space)If the given Space does not have a description, creates one for it, and saves it.longfindPageTotal(Space space)Get the number of pages in a space.@NonNull Collection<String>getAllSpaceKeys(SpaceStatus status)Get the space keys of all spaces with the given status.@NonNull List<Space>getAllSpaces()Finds all spaces in Confluence, of any type, sorted alphabetically by space name.@NonNull List<Space>getAllSpaces(SpacesQuery query)Get a list of spaces specified by theSpacesQuery.@NonNull ListgetAuthoredSpacesByUser(String username)com.atlassian.beehive.ClusterLockServicegetClusterLockService()@NonNull SpaceLogogetLogoForGlobalcontext()@NonNull SpaceLogogetLogoForSpace(@Nullable String spaceKey)intgetNumberOfBlogPosts(Space space)Get the number of blog posts in a space.@Nullable SpacegetPersonalSpace(@Nullable ConfluenceUser user)Get the personal space of the given user.SpacegetSpace(long id)Retrieve a space by its ID.@Nullable SpacegetSpace(@Nullable String spaceKey)Retrieve a space by its key.@NonNull List<com.atlassian.user.User>getSpaceAdmins(Space space)Returns a list of administrators for a given space, sorted by full name@NonNull List<com.atlassian.user.User>getSpaceAdmins(Space space, int limit)Returns a list of administrators for a given space, sorted by full name, up to the size limit@Nullable StringgetSpaceFromPageId(long pageId)Get the key for a space from its pageId in a single db call@NonNull ListBuilder<Space>getSpaces(SpacesQuery query)Get a list of spaces specified by theSpacesQuerylimited by the offset and maxResults.@NonNull PageResponse<Space>getSpaces(SpacesQuery query, LimitedRequest limitedRequest, Predicate<? super Space>... filter)get a paginated list of spaces that match the spaceQuery, filtered by the given predicate@NonNull ListgetSpacesContainingCommentsBy(String username)@NonNull ListgetSpacesContainingPagesEditedBy(String username)ReturnsPages that are either created or edited by the specified user@NonNull List<Space>getSpacesCreatedAfter(Date creationDate)@NonNull BooleanremoveSpace(Space space)Removes a space with a given space.BooleanremoveSpace(String spaceKey)Removes a space with a given spaceKey (case sensitive).@NonNull BooleanremoveSpace(String spaceKey, com.atlassian.core.util.ProgressMeter progressMeter)Removes a space with a given spaceKey (case sensitive).voidremoveSpacesInGroup(SpaceGroup spaceGroup)voidsaveSpace(Space space)voidsaveSpace(Space space, Space originalSpace)voidsetAccessModeManager(AccessModeManager accessModeManager)voidsetAttachmentManager(AttachmentManager attachmentManager)voidsetBandanaPersister(com.atlassian.bandana.BandanaPersister bandanaPersister)voidsetBulkPermissionService(BulkPermissionService bulkPermissionService)voidsetClusterLockService(com.atlassian.beehive.ClusterLockService clusterLockService)voidsetDenormalisedPermissionDarkFeature(DenormalisedPermissionDarkFeature denormalisedPermissionDarkFeature)voidsetEventPublisher(com.atlassian.event.api.EventPublisher eventPublisher)voidsetGroupManager(com.atlassian.user.GroupManager groupManager)voidsetHibernateSessionManager(HibernateSessionManager5 hibernateSessionManager)voidsetI18NBeanFactory(I18NBeanFactory i18NBeanFactory)voidsetIndexer(ConfluenceIndexer indexer)Deprecated.since 7.5 indexing now peformed via eventsvoidsetLabelManager(LabelManager labelManager)voidsetNotificationManager(NotificationManager notificationManager)voidsetPageManager(PageManager pageManager)voidsetPageTemplateManager(PageTemplateManager pageTemplateManager)voidsetPermissionCheckExemptions(PermissionCheckExemptions permissionCheckExemptions)voidsetSettingsManager(SettingsManager settingsManager)voidsetSpaceDao(SpaceDao spaceDao)voidsetSpaceDescriptionManager(SpaceDescriptionManager spaceDescriptionManager)voidsetSpacePermissionManager(SpacePermissionManagerInternal spacePermissionManager)voidsetSpacePermissionQueryManager(SpacePermissionQueryManager spacePermissionQueryManager)voidsetUserAccessor(UserAccessor userAccessor)@NonNull io.atlassian.fugue.Either<AccessDenied,SpacesQueryWithPermissionQueryBuilder>toSpacesQueryWithPermissionQueryBuilder(SpacesQuery spacesQuery)Converts aSpacesQueryinto a decorated formSpacesQueryWithPermissionQueryBuilderthat includes information about how database queries should be built for the space permissions table.voidunarchiveSpace(Space space)Un-archive the space.
-
-
-
Method Detail
-
getClusterLockService
public com.atlassian.beehive.ClusterLockService getClusterLockService()
-
setClusterLockService
public void setClusterLockService(com.atlassian.beehive.ClusterLockService clusterLockService)
-
setHibernateSessionManager
public void setHibernateSessionManager(HibernateSessionManager5 hibernateSessionManager)
-
setPageManager
public void setPageManager(PageManager pageManager)
-
setPageTemplateManager
public void setPageTemplateManager(PageTemplateManager pageTemplateManager)
-
setBandanaPersister
public void setBandanaPersister(com.atlassian.bandana.BandanaPersister bandanaPersister)
-
setSpaceDao
public void setSpaceDao(SpaceDao spaceDao)
-
setSpaceDescriptionManager
public void setSpaceDescriptionManager(SpaceDescriptionManager spaceDescriptionManager)
-
setSpacePermissionManager
public void setSpacePermissionManager(SpacePermissionManagerInternal spacePermissionManager)
-
setSpacePermissionQueryManager
public void setSpacePermissionQueryManager(SpacePermissionQueryManager spacePermissionQueryManager)
-
getSpace
public Space getSpace(long id)
Description copied from interface:SpaceManagerRetrieve a space by its ID. The space can be of any type.- Specified by:
getSpacein interfaceSpaceManager- Parameters:
id- the ID of the space- Returns:
- the space, or null if no space exists with that id.
-
getSpace
public @Nullable Space getSpace(@Nullable String spaceKey)
Description copied from interface:SpaceManagerRetrieve a space by its key. The space can be of any type.- Specified by:
getSpacein interfaceSpaceManager- Parameters:
spaceKey- the space key of the space to retrieve- Returns:
- the space, or null if no space exists with that key
-
setIndexer
@Deprecated public void setIndexer(ConfluenceIndexer indexer)
Deprecated.since 7.5 indexing now peformed via events
-
setUserAccessor
public void setUserAccessor(UserAccessor userAccessor)
-
setGroupManager
public void setGroupManager(com.atlassian.user.GroupManager groupManager)
-
setPermissionCheckExemptions
public void setPermissionCheckExemptions(PermissionCheckExemptions permissionCheckExemptions)
-
removeSpace
public @NonNull Boolean removeSpace(Space space)
Description copied from interface:SpaceManagerRemoves a space with a given space.Delegates to
SpaceManager.removeSpace(String, com.atlassian.core.util.ProgressMeter).- Specified by:
removeSpacein interfaceSpaceManager- Parameters:
space- the key of the space to remove- Returns:
- true if the space was successfully removed.
-
removeSpace
public @NonNull Boolean removeSpace(String spaceKey, com.atlassian.core.util.ProgressMeter progressMeter)
Description copied from interface:SpaceManagerRemoves a space with a given spaceKey (case sensitive). This must be passed a progress monitor which will be updated with internationalised status while the space is being removed. Ideally this should be done from a long running task, since it can be very slow and it clears the current Hibernate session.- Specified by:
removeSpacein interfaceSpaceManager- Parameters:
spaceKey- the key of the space to removeprogressMeter- will be updated with status messages and percentage completed. Not Null.- Returns:
- true if the space was successfully removed.
-
removeSpacesInGroup
public void removeSpacesInGroup(SpaceGroup spaceGroup)
- Specified by:
removeSpacesInGroupin interfaceSpaceManager
-
saveSpace
public void saveSpace(Space space)
- Specified by:
saveSpacein interfaceSpaceManager
-
saveSpace
public void saveSpace(Space space, Space originalSpace)
- Specified by:
saveSpacein interfaceSpaceManager
-
getAllSpaces
public @NonNull List<Space> getAllSpaces()
Description copied from interface:SpaceManagerFinds all spaces in Confluence, of any type, sorted alphabetically by space name.- Specified by:
getAllSpacesin interfaceSpaceManager- Returns:
- List of spaces
-
getAuthoredSpacesByUser
public @NonNull List getAuthoredSpacesByUser(String username)
- Specified by:
getAuthoredSpacesByUserin interfaceSpaceManager
-
getSpacesContainingPagesEditedBy
public @NonNull List getSpacesContainingPagesEditedBy(String username)
Description copied from interface:SpaceManagerReturnsPages that are either created or edited by the specified user- Specified by:
getSpacesContainingPagesEditedByin interfaceSpaceManager- Parameters:
username- a username- Returns:
Pages that are either created or edited by the specified user
-
getSpacesContainingCommentsBy
public @NonNull List getSpacesContainingCommentsBy(String username)
- Specified by:
getSpacesContainingCommentsByin interfaceSpaceManager
-
createSpace
public @NonNull Space createSpace(String key, String name, @Nullable String description, com.atlassian.user.User creator)
- Specified by:
createSpacein interfaceSpaceManager
-
createPrivateSpace
public @NonNull Space createPrivateSpace(String key, String name, @Nullable String description, com.atlassian.user.User creator)
Description copied from interface:SpaceManagerCreates a Space for which only the creator has any permissions- Specified by:
createPrivateSpacein interfaceSpaceManager
-
createPersonalSpace
public @NonNull Space createPersonalSpace(String name, @Nullable String description, com.atlassian.user.User owner)
Description copied from interface:SpaceManagerCreates a personal space. The difference to a normal space are that this space will have a type "personal" and the user passed to this space should not be the creator, but is the owner of the space.- Specified by:
createPersonalSpacein interfaceSpaceManager
-
createPrivatePersonalSpace
public @NonNull Space createPrivatePersonalSpace(String name, @Nullable String description, com.atlassian.user.User owner)
Description copied from interface:SpaceManagerCreate a personal Space for which only the creator has any permissions- Specified by:
createPrivatePersonalSpacein interfaceSpaceManager
-
createSpace
@Deprecated public @NonNull Space createSpace(Space space)
Deprecated.since 4.3. Use {#link #createSpace(String key, String name, String description, User creator)} instead- Specified by:
createSpacein interfaceSpaceManager- Parameters:
space- the space to create- Returns:
- the newly created space
-
getPersonalSpace
public @Nullable Space getPersonalSpace(@Nullable ConfluenceUser user)
Description copied from interface:SpaceManagerGet the personal space of the given user.- Specified by:
getPersonalSpacein interfaceSpaceManager- Parameters:
user- the user to get the space for. If user is null, the method will return null- Returns:
- the personal space of the user if one exists, otherwise null.
-
findPageTotal
public long findPageTotal(Space space)
Description copied from interface:SpaceManagerGet the number of pages in a space. This counts all pages, including non-current versions, and including pages that are in the trash. As such, it probably doesn't do what you think it does.- Specified by:
findPageTotalin interfaceSpaceManager- Parameters:
space- the space to count pages in- Returns:
- the number of pages in that space
-
setEventPublisher
public void setEventPublisher(com.atlassian.event.api.EventPublisher eventPublisher)
-
getNumberOfBlogPosts
public int getNumberOfBlogPosts(Space space)
Description copied from interface:SpaceManagerGet the number of blog posts in a space. This counts all news, including non-current versions, and including news that is in the trash. As such, it probably doesn't do what you think it does.- Specified by:
getNumberOfBlogPostsin interfaceSpaceManager- Parameters:
space- the space to count pages in- Returns:
- the number of blog posts (news items) in that space
-
getSpaceFromPageId
public @Nullable String getSpaceFromPageId(long pageId)
Description copied from interface:SpaceManagerGet the key for a space from its pageId in a single db call- Specified by:
getSpaceFromPageIdin interfaceSpaceManager- Parameters:
pageId- the id of the page to look for- Returns:
- the key for the space containing the given page
-
ensureSpaceDescriptionExists
public void ensureSpaceDescriptionExists(Space space)
Description copied from interface:SpaceManagerIf the given Space does not have a description, creates one for it, and saves it.This is required for CONF-4080, because labels on a Space are attached to a Space Description.
- Specified by:
ensureSpaceDescriptionExistsin interfaceSpaceManager- Parameters:
space- an existing space. Not null.
-
getSpacesCreatedAfter
public @NonNull List<Space> getSpacesCreatedAfter(Date creationDate)
- Specified by:
getSpacesCreatedAfterin interfaceSpaceManager
-
setNotificationManager
public void setNotificationManager(NotificationManager notificationManager)
-
setLabelManager
public void setLabelManager(LabelManager labelManager)
-
setAttachmentManager
public void setAttachmentManager(AttachmentManager attachmentManager)
-
setSettingsManager
public void setSettingsManager(SettingsManager settingsManager)
-
setI18NBeanFactory
public void setI18NBeanFactory(I18NBeanFactory i18NBeanFactory)
-
getLogoForSpace
public @NonNull SpaceLogo getLogoForSpace(@Nullable String spaceKey)
- Specified by:
getLogoForSpacein interfaceSpaceManager
-
getLogoForGlobalcontext
public @NonNull SpaceLogo getLogoForGlobalcontext()
- Specified by:
getLogoForGlobalcontextin interfaceSpaceManager
-
getSpaces
public @NonNull ListBuilder<Space> getSpaces(SpacesQuery query)
Description copied from interface:SpaceManagerGet a list of spaces specified by theSpacesQuerylimited by the offset and maxResults.- Specified by:
getSpacesin interfaceSpaceManager
-
getSpaces
@SafeVarargs public final @NonNull PageResponse<Space> getSpaces(SpacesQuery query, LimitedRequest limitedRequest, Predicate<? super Space>... filter)
Description copied from interface:SpaceManagerInternalget a paginated list of spaces that match the spaceQuery, filtered by the given predicate- Specified by:
getSpacesin interfaceSpaceManagerInternal- Parameters:
query- - the query to use to fetch the spaces from the databaseslimitedRequest- - the pagination request limitfilter- - the filter to apply to the requested spaces- Returns:
- a PageResponse of matching spaces
-
toSpacesQueryWithPermissionQueryBuilder
public @NonNull io.atlassian.fugue.Either<AccessDenied,SpacesQueryWithPermissionQueryBuilder> toSpacesQueryWithPermissionQueryBuilder(SpacesQuery spacesQuery)
Description copied from interface:SpaceManagerInternalConverts a
SpacesQueryinto a decorated formSpacesQueryWithPermissionQueryBuilderthat includes information about how database queries should be built for the space permissions table. This extra information is passed down to the DAO level so thatSpaceDaodoesn't have to call out to the manager level to determine things like the user'sAccessStatus, or construct extremely complex queries to join and figure out the user's Confluence access.If no permission check is defined in the
SpacesQueryor the user is a super-user, then the returned object excludes permission checking.- Specified by:
toSpacesQueryWithPermissionQueryBuilderin interfaceSpaceManagerInternal- Parameters:
spacesQuery- the query to use to fetch the spaces from the databases- Returns:
- the
SpacesQuerydecorated into aSpacesQueryWithPermissionQueryBuilderORAccessDeniedif the user does not have Confluence access, or an invalid permission is being checked for the user.
-
getAllSpaces
public @NonNull List<Space> getAllSpaces(SpacesQuery query)
Description copied from interface:SpaceManagerGet a list of spaces specified by theSpacesQuery. Any code that calls this method is a potential performance problem. The method may be deprecated and removed in a future version of Confluence. UseSpaceManager.getSpaces(SpacesQuery)to retrieve pages of results instead.- Specified by:
getAllSpacesin interfaceSpaceManager
-
getSpaceAdmins
public @NonNull List<com.atlassian.user.User> getSpaceAdmins(Space space)
Description copied from interface:SpaceManagerReturns a list of administrators for a given space, sorted by full name- Specified by:
getSpaceAdminsin interfaceSpaceManager
-
getSpaceAdmins
public @NonNull List<com.atlassian.user.User> getSpaceAdmins(Space space, int limit)
Description copied from interface:SpaceManagerReturns a list of administrators for a given space, sorted by full name, up to the size limit- Specified by:
getSpaceAdminsin interfaceSpaceManager
-
setAccessModeManager
public void setAccessModeManager(AccessModeManager accessModeManager)
-
setBulkPermissionService
public void setBulkPermissionService(BulkPermissionService bulkPermissionService)
-
setDenormalisedPermissionDarkFeature
public void setDenormalisedPermissionDarkFeature(DenormalisedPermissionDarkFeature denormalisedPermissionDarkFeature)
-
archiveSpace
public void archiveSpace(Space space)
Description copied from interface:SpaceManagerArchive the space. Archived spaces are removed from various lists and search results to unclutter the user interface. If the space is archived, this method does nothing.- Specified by:
archiveSpacein interfaceSpaceManager- Parameters:
space- the space to archive.
-
unarchiveSpace
public void unarchiveSpace(Space space)
Description copied from interface:SpaceManagerUn-archive the space. If the space is already un-archived, this method does nothing.- Specified by:
unarchiveSpacein interfaceSpaceManager- Parameters:
space- the space to archive.
-
getAllSpaceKeys
public @NonNull Collection<String> getAllSpaceKeys(SpaceStatus status)
Description copied from interface:SpaceManagerGet the space keys of all spaces with the given status.- Specified by:
getAllSpaceKeysin interfaceSpaceManager- Parameters:
status- the status to search for- Returns:
- the keys of all spaces with that status.
-
removeSpace
public Boolean removeSpace(String spaceKey)
Description copied from interface:SpaceManagerRemoves a space with a given spaceKey (case sensitive).Delegates to
SpaceManager.removeSpace(String, com.atlassian.core.util.ProgressMeter).- Specified by:
removeSpacein interfaceSpaceManager- Parameters:
spaceKey- the key of the space to remove- Returns:
- true if the space was successfully removed.
-
-