Class DefaultSpaceManager
- All Implemented Interfaces:
SpaceManagerInternal,SpaceManager
-
Field Summary
Fields inherited from interface com.atlassian.confluence.spaces.SpaceManager
GLOBAL_LOGO -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidarchiveSpace(Space space) Archive the space.static SpacecloneSpaceForRemoveEvent(Space space) We clone the space object so we can pass the space data with the SpaceRemoveEvent because a whole bunch of plugins break if we don't.@NonNull SpacecreatePersonalSpace(String name, @Nullable String description, ConfluenceUser owner) Creates a personal space.@NonNull SpacecreatePrivatePersonalSpace(String name, @Nullable String description, ConfluenceUser owner) Create a personal Space for which only the creator has any permissions@NonNull SpacecreatePrivateSpace(String key, String name, @Nullable String description, ConfluenceUser 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, ConfluenceUser creator) voidIf 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.Finds all spaces in Confluence, of any type, sorted alphabetically by space name.getAllSpaces(SpacesQuery query) Get a list of spaces specified by theSpacesQuery.@NonNull Listcom.atlassian.beehive.ClusterLockService@NonNull SpaceLogo@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.getSpace(long id) Retrieve a space by its ID.@Nullable SpaceRetrieve 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.final @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 List@NonNull ListReturnsPages that are either created or edited by the specified usergetSpacesCreatedAfter(Date creationDate) @NonNull BooleanremoveSpace(Space space) Removes a space with a given space.@NonNull 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) voidvoidvoidsetAccessModeManager(AccessModeManager accessModeManager) voidsetAttachmentManager(AttachmentManager attachmentManager) voidsetBandanaPersister(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(SpaceDaoInternal 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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.atlassian.confluence.spaces.SpaceManager
createPersonalSpace, createPrivatePersonalSpace, createPrivateSpace, createSpace, getDefaultHomepageTitle, hasPersonalSpace
-
Constructor Details
-
DefaultSpaceManager
public DefaultSpaceManager()
-
-
Method Details
-
getClusterLockService
public com.atlassian.beehive.ClusterLockService getClusterLockService() -
setClusterLockService
public void setClusterLockService(com.atlassian.beehive.ClusterLockService clusterLockService) -
setHibernateSessionManager
-
setPageManager
-
setPageTemplateManager
-
setBandanaPersister
-
setSpaceDao
-
setSpaceDescriptionManager
-
setSpacePermissionManager
-
setSpacePermissionQueryManager
-
getSpace
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
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.since 7.5 indexing now peformed via events -
setUserAccessor
-
setGroupManager
public void setGroupManager(com.atlassian.user.GroupManager groupManager) -
setPermissionCheckExemptions
-
removeSpace
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.
-
cloneSpaceForRemoveEvent
We clone the space object so we can pass the space data with the SpaceRemoveEvent because a whole bunch of plugins break if we don't. See CONF-26122 and CONF-26120. This by design only does a shallow clone of the space description object and does not set the space logo. The assumption is that by the time a space is removed, there is no point looking up the space logo, which no longer exists.- Parameters:
space- The space being removed- Returns:
- A cloned space object with a cloned space description object
-
removeSpacesInGroup
- Specified by:
removeSpacesInGroupin interfaceSpaceManager
-
saveSpace
- Specified by:
saveSpacein interfaceSpaceManager
-
saveSpace
- Specified by:
saveSpacein interfaceSpaceManager
-
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
- Specified by:
getAuthoredSpacesByUserin interfaceSpaceManager
-
getSpacesContainingPagesEditedBy
Description copied from interface:SpaceManagerReturnsPages that are either created or edited by the specified user- Specified by:
getSpacesContainingPagesEditedByin interfaceSpaceManager- Returns:
Pages that are either created or edited by the specified user
-
getSpacesContainingCommentsBy
- Specified by:
getSpacesContainingCommentsByin interfaceSpaceManager
-
createSpace
public @NonNull Space createSpace(String key, String name, @Nullable String description, ConfluenceUser creator) - Specified by:
createSpacein interfaceSpaceManager
-
createPrivateSpace
public @NonNull Space createPrivateSpace(String key, String name, @Nullable String description, ConfluenceUser 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, ConfluenceUser 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, ConfluenceUser owner) Description copied from interface:SpaceManagerCreate a personal Space for which only the creator has any permissions- Specified by:
createPrivatePersonalSpacein interfaceSpaceManager
-
createSpace
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
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
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
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
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
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
- Specified by:
getSpacesCreatedAfterin interfaceSpaceManager
-
setNotificationManager
-
setLabelManager
-
setAttachmentManager
-
setSettingsManager
-
setI18NBeanFactory
-
getLogoForSpace
- Specified by:
getLogoForSpacein interfaceSpaceManager
-
getLogoForGlobalcontext
- Specified by:
getLogoForGlobalcontextin interfaceSpaceManager
-
getSpaces
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
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
Description copied from interface:SpaceManagerReturns a list of administrators for a given space, sorted by full name- Specified by:
getSpaceAdminsin interfaceSpaceManager
-
getSpaceAdmins
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
-
setBulkPermissionService
-
setDenormalisedPermissionDarkFeature
public void setDenormalisedPermissionDarkFeature(DenormalisedPermissionDarkFeature denormalisedPermissionDarkFeature) -
archiveSpace
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
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
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
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.
-