Interface RemoteContentRestrictionService
-
- All Known Implementing Classes:
RemoteContentRestrictionServiceImpl
@ExperimentalApi public interface RemoteContentRestrictionService
ContentRestrictionService
implementation that communicates with Confluence remotely using the Confluence REST API.Provides future returning equivalents for the methods in ContentRestrictionService.
- Since:
- 5.7
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description com.atlassian.util.concurrent.Promise<Void>
addDirectRestrictionForSubject(ContentId contentId, OperationKey operationKey, Subject subject)
Deprecated.since 7.0.1.CompletionStage<Void>
addDirectRestrictionForSubjectCompletionStage(ContentId contentId, OperationKey operationKey, Subject subject)
Adds singular directContentRestriction
foroperationKey
andsubject
to the content identified bycontentId
parameter.com.atlassian.util.concurrent.Promise<ContentRestrictionsPageResponse>
addRestrictions(ContentId target, Collection<? extends ContentRestriction> contentRestrictions, Expansion... expansions)
Deprecated.since 7.0.1.CompletionStage<ContentRestrictionsPageResponse>
addRestrictionsCompletionStage(ContentId target, Collection<? extends ContentRestriction> contentRestrictions, Expansion... expansions)
Attempts to add all the restrictions specified to a piece of content identified bycontentId
.com.atlassian.util.concurrent.Promise<ContentRestrictionsPageResponse>
deleteAllDirectRestrictions(ContentId target, Expansion... expansions)
Deprecated.since 7.0.1.CompletionStage<ContentRestrictionsPageResponse>
deleteAllDirectRestrictionsCompletionStage(ContentId target, Expansion... expansions)
Attempts to delete all the restrictions specified directly on a piece of content identified bycontentId
.com.atlassian.util.concurrent.Promise<Void>
deleteDirectRestrictionForSubject(ContentId contentId, OperationKey operationKey, Subject subject)
Deprecated.since 7.0.1.CompletionStage<Void>
deleteDirectRestrictionForSubjectCompletionStage(ContentId contentId, OperationKey operationKey, Subject subject)
Deletes singular directContentRestriction
foroperationKey
andsubject
from the content identified bycontentId
parameter.com.atlassian.util.concurrent.Promise<ContentRestrictionsPageResponse>
getRestrictions(ContentId target, PageRequest pageRequest, Expansion... expansions)
Deprecated.since 7.0.1.CompletionStage<ContentRestrictionsPageResponse>
getRestrictionsCompletionStage(ContentId target, PageRequest pageRequest, Expansion... expansions)
Retrieves all the restrictions for all the operations on a given Content.com.atlassian.util.concurrent.Promise<ContentRestriction>
getRestrictionsForOperation(ContentId target, OperationKey operationKey, PageRequest pageRequest, Expansion... expansions)
Deprecated.since 7.0.1.CompletionStage<ContentRestriction>
getRestrictionsForOperationCompletionStage(ContentId target, OperationKey operationKey, PageRequest pageRequest, Expansion... expansions)
Retrieves all restrictions for given operation key on given content.com.atlassian.util.concurrent.Promise<Map<OperationKey,ContentRestriction>>
getRestrictionsGroupByOperation(ContentId target, Expansion... expansions)
Deprecated.since 7.0.1.CompletionStage<Map<OperationKey,ContentRestriction>>
getRestrictionsGroupByOperationCompletionStage(ContentId target, Expansion... expansions)
List all restrictions that exist directly on the given content.com.atlassian.util.concurrent.Promise<Boolean>
hasDirectRestrictionForSubject(ContentId contentId, OperationKey operationKey, Subject subject)
Deprecated.since 7.0.1.CompletionStage<Boolean>
hasDirectRestrictionForSubjectCompletionStage(ContentId contentId, OperationKey operationKey, Subject subject)
Returnstrue
if the User or Group specified by thesubject
parameter has restriction(s) for theoperationKey
operation which are specified directly on the Content identified bycontentId
parameter.com.atlassian.util.concurrent.Promise<ContentRestrictionsPageResponse>
updateRestrictions(ContentId target, Collection<? extends ContentRestriction> contentRestrictions, Expansion... expansions)
Deprecated.since 7.0.1.CompletionStage<ContentRestrictionsPageResponse>
updateRestrictionsCompletionStage(ContentId target, Collection<? extends ContentRestriction> contentRestrictions, Expansion... expansions)
Sets all the restrictions specified to a piece of content identified bycontentId
, replacing any existing permissions.
-
-
-
Method Detail
-
getRestrictionsGroupByOperation
@Deprecated com.atlassian.util.concurrent.Promise<Map<OperationKey,ContentRestriction>> getRestrictionsGroupByOperation(ContentId target, Expansion... expansions) throws ServiceException
Deprecated.since 7.0.1. UsegetRestrictionsGroupByOperationCompletionStage(ContentId, Expansion...)
instead.List all restrictions that exist directly on the given content. Note that the subjects returned in each ContentRestriction are hard-limited to an arbitrary maximum size. Obtaining more can be done via thegetRestrictionsForOperation(com.atlassian.confluence.api.model.content.id.ContentId, com.atlassian.confluence.api.model.permissions.OperationKey, com.atlassian.confluence.api.model.pagination.PageRequest, com.atlassian.confluence.api.model.Expansion...)
method.- Parameters:
target
- the id of the content to look up permissions forexpansions
- the expansions to apply to the returned data. These expansions start from the operation itself.- Returns:
- a Map of all ContentRestrictions, grouped by operation key
- Throws:
ServiceException
- Since:
- 5.7
-
getRestrictionsGroupByOperationCompletionStage
CompletionStage<Map<OperationKey,ContentRestriction>> getRestrictionsGroupByOperationCompletionStage(ContentId target, Expansion... expansions) throws ServiceException
List all restrictions that exist directly on the given content. Note that the subjects returned in each ContentRestriction are hard-limited to an arbitrary maximum size. Obtaining more can be done via thegetRestrictionsForOperation(com.atlassian.confluence.api.model.content.id.ContentId, com.atlassian.confluence.api.model.permissions.OperationKey, com.atlassian.confluence.api.model.pagination.PageRequest, com.atlassian.confluence.api.model.Expansion...)
method.- Parameters:
target
- the id of the content to look up permissions forexpansions
- the expansions to apply to the returned data. These expansions start from the operation itself.- Returns:
- a Map of all ContentRestrictions, grouped by operation key
- Throws:
ServiceException
- Since:
- 7.0.1
-
getRestrictionsForOperation
@Deprecated com.atlassian.util.concurrent.Promise<ContentRestriction> getRestrictionsForOperation(ContentId target, OperationKey operationKey, PageRequest pageRequest, Expansion... expansions) throws ServiceException
Deprecated.since 7.0.1. UsegetRestrictionsForOperationCompletionStage(ContentId, OperationKey, PageRequest, Expansion...)
instead.Retrieves all restrictions for given operation key on given content.- Parameters:
target
- the id of the content to look up permissions foroperationKey
- the operation key to look up restrictions forpageRequest
- pagination through the subjects contained within the ContentRestrictionexpansions
- the expansions to the ContentRestriction.- Returns:
- ContentRestriction containing relevant restrictions for given operation key, or null if operation key does not have corresponding restrictions.
- Throws:
ServiceException
- Since:
- 5.7
-
getRestrictionsForOperationCompletionStage
CompletionStage<ContentRestriction> getRestrictionsForOperationCompletionStage(ContentId target, OperationKey operationKey, PageRequest pageRequest, Expansion... expansions) throws ServiceException
Retrieves all restrictions for given operation key on given content.- Parameters:
target
- the id of the content to look up permissions foroperationKey
- the operation key to look up restrictions forpageRequest
- pagination through the subjects contained within the ContentRestrictionexpansions
- the expansions to the ContentRestriction.- Returns:
- ContentRestriction containing relevant restrictions for given operation key, or null if operation key does not have corresponding restrictions.
- Throws:
ServiceException
- Since:
- 7.0.1
-
getRestrictions
@Deprecated com.atlassian.util.concurrent.Promise<ContentRestrictionsPageResponse> getRestrictions(ContentId target, PageRequest pageRequest, Expansion... expansions) throws NotFoundException
Deprecated.since 7.0.1. UsegetRestrictionsCompletionStage(ContentId, PageRequest, Expansion...)
instead.Retrieves all the restrictions for all the operations on a given Content.- Parameters:
target
- the id of the content to look up permissions forpageRequest
- pagination through the list of all the ContentRestrictions returnedexpansions
- the expansions to the ContentRestriction- Returns:
- a paginated response, containing all the ContentRestrictions for the given content
- Throws:
NotFoundException
- if given content id does not exist, or is not viewable by user- Since:
- 5.10
-
getRestrictionsCompletionStage
CompletionStage<ContentRestrictionsPageResponse> getRestrictionsCompletionStage(ContentId target, PageRequest pageRequest, Expansion... expansions) throws NotFoundException
Retrieves all the restrictions for all the operations on a given Content.- Parameters:
target
- the id of the content to look up permissions forpageRequest
- pagination through the list of all the ContentRestrictions returnedexpansions
- the expansions to the ContentRestriction- Returns:
- a paginated response, containing all the ContentRestrictions for the given content
- Throws:
NotFoundException
- if given content id does not exist, or is not viewable by user- Since:
- 7.0.1
-
updateRestrictions
@Deprecated com.atlassian.util.concurrent.Promise<ContentRestrictionsPageResponse> updateRestrictions(ContentId target, Collection<? extends ContentRestriction> contentRestrictions, Expansion... expansions) throws ServiceException
Deprecated.since 7.0.1. UseupdateRestrictionsCompletionStage(ContentId, Collection, Expansion...)
instead.Sets all the restrictions specified to a piece of content identified bycontentId
, replacing any existing permissions. Setting per-content restrictions is currently allowed for Pages or BlogPosts only.Rules of applying restrictions via this method:
- Provided collection of
ContentRestriction
s is allowed to have only 1 (ONE)ContentRestriction
object for each operation. - Provided ContentRestrictions will replace (overwrite) any pre-existing restrictions on the Content under the corresponding operations.
- In case provided collection of ContentRestriction does not have any of the operations supported it is assumed that restrictions for such operation should not be changed at all.
- Restrictions with the "users" and/or "groups" map entries explicitly set to be empty arrays will result in removing corresponding restrictions for the content.
- Restrictions with the "users" and/or "groups" map entries missing will result in not changing corresponding operation's user/group restrictions for the content.
- It is not allowed to edit the restrictions in such a way which would remove requesting user's access.
- Only Page, BlogPost and other add-on provided Content Types that support direct content restrictions are supported.
- Parameters:
target
- the id of the content to assign restrictions tocontentRestrictions
- Collection ofContentRestriction
s to apply to the Content specifiedexpansions
- the expansions to the ContentRestriction. To be expanded on response.- Returns:
ContentRestrictionsPageResponse
describing the new state of the content identified bycontentId
(same asgetRestrictions(ContentId, PageRequest, Expansion...)
would return)- Throws:
ServiceException
- or one of it subtypes.NotFoundException
- in case there's no Content with ID provided or user does not have enough rights to view itPermissionException
- in case user is not allowed to alter restrictions on the content specifiedBadRequestException
- in case when data supplied is not enough/corrupt, etc... many reasons. Exception generally would have message which explains what's wrong.- Since:
- 5.10
- Provided collection of
-
updateRestrictionsCompletionStage
CompletionStage<ContentRestrictionsPageResponse> updateRestrictionsCompletionStage(ContentId target, Collection<? extends ContentRestriction> contentRestrictions, Expansion... expansions) throws ServiceException
Sets all the restrictions specified to a piece of content identified bycontentId
, replacing any existing permissions. Setting per-content restrictions is currently allowed for Pages or BlogPosts only.Rules of applying restrictions via this method:
- Provided collection of
ContentRestriction
s is allowed to have only 1 (ONE)ContentRestriction
object for each operation. - Provided ContentRestrictions will replace (overwrite) any pre-existing restrictions on the Content under the corresponding operations.
- In case provided collection of ContentRestriction does not have any of the operations supported it is assumed that restrictions for such operation should not be changed at all.
- Restrictions with the "users" and/or "groups" map entries explicitly set to be empty arrays will result in removing corresponding restrictions for the content.
- Restrictions with the "users" and/or "groups" map entries missing will result in not changing corresponding operation's user/group restrictions for the content.
- It is not allowed to edit the restrictions in such a way which would remove requesting user's access.
- Only Page, BlogPost and other add-on provided Content Types that support direct content restrictions are supported.
- Parameters:
target
- the id of the content to assign restrictions tocontentRestrictions
- Collection ofContentRestriction
s to apply to the Content specifiedexpansions
- the expansions to the ContentRestriction. To be expanded on response.- Returns:
ContentRestrictionsPageResponse
describing the new state of the content identified bycontentId
(same asgetRestrictions(ContentId, PageRequest, Expansion...)
would return)- Throws:
ServiceException
- or one of it subtypes.NotFoundException
- in case there's no Content with ID provided or user does not have enough rights to view itPermissionException
- in case user is not allowed to alter restrictions on the content specifiedBadRequestException
- in case when data supplied is not enough/corrupt, etc... many reasons. Exception generally would have message which explains what's wrong.- Since:
- 7.0.1
- Provided collection of
-
addRestrictions
@Deprecated com.atlassian.util.concurrent.Promise<ContentRestrictionsPageResponse> addRestrictions(ContentId target, Collection<? extends ContentRestriction> contentRestrictions, Expansion... expansions) throws ServiceException
Deprecated.since 7.0.1. UseaddRestrictionsCompletionStage(ContentId, Collection, Expansion...)
instead.Attempts to add all the restrictions specified to a piece of content identified bycontentId
. Does not replace/remove/alter any pre-existingContentRestriction
s. ProvidedContentRestriction
s will be added, i.e. "merged with" any pre-existing restrictions on the Content under the corresponding operations. Changing per-content restrictions is currently allowed for Pages or BlogPosts only.Rules of applying restrictions via this method:
- Provided collection of
ContentRestriction
s is allowed to have only 1 (ONE)ContentRestriction
object for each operation. - Provided ContentRestrictions will be added, i.e. "merged with" any pre-existing restrictions on the Content under the corresponding operations.
- In case provided collection of ContentRestriction does not have any of the operations supported no changes will happen.
- Restrictions with the "users" and/or "groups" map entries explicitly set to be empty arrays will result in not changing corresponding operation's user/group restrictions for the content.
- Restrictions with the "users" and/or "groups" map entries missing will result in not changing corresponding operation's user/group restrictions for the content.
- It is not allowed to edit the restrictions in such a way which would remove requesting user's access.
- Only Page, BlogPost and other add-on provided Content Types that support direct content restrictions are supported.
- Parameters:
target
- the id of the content to add restrictions tocontentRestrictions
- Collection ofContentRestriction
s to apply to the Content specifiedexpansions
- the expansions to the ContentRestriction. To be expanded on response.- Returns:
ContentRestrictionsPageResponse
describing the new state of the content identified bycontentId
(same asgetRestrictions(ContentId, PageRequest, Expansion...)
would return)- Throws:
ServiceException
- or one of it subtypes.NotFoundException
- in case there's no Content with ID provided or user does not have enough rights to view itPermissionException
- in case user is not allowed to alter restrictions on the content specifiedBadRequestException
- in case when data supplied is not enough/corrupt, etc... many reasons. Exception generally would have message which explains what's wrong.- Since:
- 5.10
- Provided collection of
-
addRestrictionsCompletionStage
CompletionStage<ContentRestrictionsPageResponse> addRestrictionsCompletionStage(ContentId target, Collection<? extends ContentRestriction> contentRestrictions, Expansion... expansions) throws ServiceException
Attempts to add all the restrictions specified to a piece of content identified bycontentId
. Does not replace/remove/alter any pre-existingContentRestriction
s. ProvidedContentRestriction
s will be added, i.e. "merged with" any pre-existing restrictions on the Content under the corresponding operations. Changing per-content restrictions is currently allowed for Pages or BlogPosts only.Rules of applying restrictions via this method:
- Provided collection of
ContentRestriction
s is allowed to have only 1 (ONE)ContentRestriction
object for each operation. - Provided ContentRestrictions will be added, i.e. "merged with" any pre-existing restrictions on the Content under the corresponding operations.
- In case provided collection of ContentRestriction does not have any of the operations supported no changes will happen.
- Restrictions with the "users" and/or "groups" map entries explicitly set to be empty arrays will result in not changing corresponding operation's user/group restrictions for the content.
- Restrictions with the "users" and/or "groups" map entries missing will result in not changing corresponding operation's user/group restrictions for the content.
- It is not allowed to edit the restrictions in such a way which would remove requesting user's access.
- Only Page, BlogPost and other add-on provided Content Types that support direct content restrictions are supported.
- Parameters:
target
- the id of the content to add restrictions tocontentRestrictions
- Collection ofContentRestriction
s to apply to the Content specifiedexpansions
- the expansions to the ContentRestriction. To be expanded on response.- Returns:
ContentRestrictionsPageResponse
describing the new state of the content identified bycontentId
(same asgetRestrictions(ContentId, PageRequest, Expansion...)
would return)- Throws:
ServiceException
- or one of it subtypes.NotFoundException
- in case there's no Content with ID provided or user does not have enough rights to view itPermissionException
- in case user is not allowed to alter restrictions on the content specifiedBadRequestException
- in case when data supplied is not enough/corrupt, etc... many reasons. Exception generally would have message which explains what's wrong.- Since:
- 7.0.1
- Provided collection of
-
deleteAllDirectRestrictions
@Deprecated com.atlassian.util.concurrent.Promise<ContentRestrictionsPageResponse> deleteAllDirectRestrictions(ContentId target, Expansion... expansions) throws ServiceException
Deprecated.since 7.0.1. UsedeleteAllDirectRestrictionsCompletionStage(ContentId, Expansion...)
instead.Attempts to delete all the restrictions specified directly on a piece of content identified bycontentId
. "specified directly" means that deleting restrictions on some content won't affect any restrictions inherited from its parents. Changing per-content restrictions is currently allowed for Pages, Blog Posts and other add-on provided Content Types that support direct content restrictions.- Parameters:
target
- the id of the content to remove all directly specified restrictions fromexpansions
- the expansions to the ContentRestriction. To be expanded on response.- Returns:
ContentRestrictionsPageResponse
describing the new state of the content identified bycontentId
(same asgetRestrictions(ContentId, PageRequest, Expansion...)
would return)- Throws:
ServiceException
- or one of it subtypes.NotFoundException
- in case there's no Content with ID provided or user does not have enough rights to view itPermissionException
- in case user is not allowed to alter restrictions on the content specified- Since:
- 5.10
-
deleteAllDirectRestrictionsCompletionStage
CompletionStage<ContentRestrictionsPageResponse> deleteAllDirectRestrictionsCompletionStage(ContentId target, Expansion... expansions) throws ServiceException
Attempts to delete all the restrictions specified directly on a piece of content identified bycontentId
. "specified directly" means that deleting restrictions on some content won't affect any restrictions inherited from its parents. Changing per-content restrictions is currently allowed for Pages, Blog Posts and other add-on provided Content Types that support direct content restrictions.- Parameters:
target
- the id of the content to remove all directly specified restrictions fromexpansions
- the expansions to the ContentRestriction. To be expanded on response.- Returns:
ContentRestrictionsPageResponse
describing the new state of the content identified bycontentId
(same asgetRestrictions(ContentId, PageRequest, Expansion...)
would return)- Throws:
ServiceException
- or one of it subtypes.NotFoundException
- in case there's no Content with ID provided or user does not have enough rights to view itPermissionException
- in case user is not allowed to alter restrictions on the content specified- Since:
- 7.0.1
-
hasDirectRestrictionForSubject
@Deprecated com.atlassian.util.concurrent.Promise<Boolean> hasDirectRestrictionForSubject(ContentId contentId, OperationKey operationKey, Subject subject) throws ServiceException
Deprecated.since 7.0.1. UsehasDirectRestrictionForSubjectCompletionStage(ContentId, OperationKey, Subject)
instead.Returnstrue
if the User or Group specified by thesubject
parameter has restriction(s) for theoperationKey
operation which are specified directly on the Content identified bycontentId
parameter.Returns
false
otherwise.Can throw
BadRequestException
orPermissionException
and other various subtypes ofServiceException
in case of bad IDs, parameters, permission problems, etc.- Parameters:
contentId
- the id of the content which the check will be performed onoperationKey
- the operation key to check restrictions againstsubject
- eitherUser
orGroup
who's restriction is in question- Returns:
true
orfalse
depending on whether user/group specified have any direct restrictions on a content specified- Throws:
ServiceException
- or one of it subtypes.NotFoundException
- in case there's no Content with ID provided or user does not have enough rights to view it- Since:
- 5.10
-
hasDirectRestrictionForSubjectCompletionStage
CompletionStage<Boolean> hasDirectRestrictionForSubjectCompletionStage(ContentId contentId, OperationKey operationKey, Subject subject) throws ServiceException
Returnstrue
if the User or Group specified by thesubject
parameter has restriction(s) for theoperationKey
operation which are specified directly on the Content identified bycontentId
parameter.Returns
false
otherwise.Can throw
BadRequestException
orPermissionException
and other various subtypes ofServiceException
in case of bad IDs, parameters, permission problems, etc.- Parameters:
contentId
- the id of the content which the check will be performed onoperationKey
- the operation key to check restrictions againstsubject
- eitherUser
orGroup
who's restriction is in question- Returns:
true
orfalse
depending on whether user/group specified have any direct restrictions on a content specified- Throws:
ServiceException
- or one of it subtypes.NotFoundException
- in case there's no Content with ID provided or user does not have enough rights to view it- Since:
- 7.0.1
-
deleteDirectRestrictionForSubject
@Deprecated com.atlassian.util.concurrent.Promise<Void> deleteDirectRestrictionForSubject(ContentId contentId, OperationKey operationKey, Subject subject) throws ServiceException
Deprecated.since 7.0.1. UsedeleteDirectRestrictionForSubjectCompletionStage(ContentId, OperationKey, Subject)
instead.Deletes singular directContentRestriction
foroperationKey
andsubject
from the content identified bycontentId
parameter. Throws subclasses ofServiceException
in case of various problems (cannot find content, restrictions to be deleted does not exist, etc...)- Parameters:
contentId
- the id of the content which the restriction to be removed fromoperationKey
- the operation to remove restriction forsubject
- eitherUser
orGroup
who's restriction is to be deleted- Throws:
ServiceException
- Since:
- 5.10
-
deleteDirectRestrictionForSubjectCompletionStage
CompletionStage<Void> deleteDirectRestrictionForSubjectCompletionStage(ContentId contentId, OperationKey operationKey, Subject subject) throws ServiceException
Deletes singular directContentRestriction
foroperationKey
andsubject
from the content identified bycontentId
parameter. Throws subclasses ofServiceException
in case of various problems (cannot find content, restrictions to be deleted does not exist, etc...)- Parameters:
contentId
- the id of the content which the restriction to be removed fromoperationKey
- the operation to remove restriction forsubject
- eitherUser
orGroup
who's restriction is to be deleted- Throws:
ServiceException
- Since:
- 7.0.1
-
addDirectRestrictionForSubject
@Deprecated com.atlassian.util.concurrent.Promise<Void> addDirectRestrictionForSubject(ContentId contentId, OperationKey operationKey, Subject subject) throws ServiceException
Deprecated.since 7.0.1. UseaddDirectRestrictionForSubjectCompletionStage(ContentId, OperationKey, Subject)
instead.Adds singular directContentRestriction
foroperationKey
andsubject
to the content identified bycontentId
parameter. Throws subclasses ofServiceException
in case of various problems (cannot find content, wrong operationKey, restricting self, etc...)- Parameters:
contentId
- the id of the content which the restriction to be added tooperationKey
- the operation to remove restriction forsubject
- eitherUser
orGroup
who's restriction is to be added- Throws:
ServiceException
- Since:
- 5.10
-
addDirectRestrictionForSubjectCompletionStage
CompletionStage<Void> addDirectRestrictionForSubjectCompletionStage(ContentId contentId, OperationKey operationKey, Subject subject) throws ServiceException
Adds singular directContentRestriction
foroperationKey
andsubject
to the content identified bycontentId
parameter. Throws subclasses ofServiceException
in case of various problems (cannot find content, wrong operationKey, restricting self, etc...)- Parameters:
contentId
- the id of the content which the restriction to be added tooperationKey
- the operation to remove restriction forsubject
- eitherUser
orGroup
who's restriction is to be added- Throws:
ServiceException
- Since:
- 7.0.1
-
-