@Transactional
public interface PermissionManager
Modifier and Type | Interface and Description |
---|---|
static interface |
PermissionManager.Criterion
A criterion for whether an entity should be permitted or not
|
Modifier and Type | Field and Description |
---|---|
static Object |
TARGET_APPLICATION
A target that encompasses most administrative functions minus the ones covered by TARGET_SYSTEM.
|
static Object |
TARGET_PEOPLE_DIRECTORY
A target the represents the People Directory function of Confluence.
|
static Object |
TARGET_SYSTEM
A target that encompasses functions that have system impact and can compromise system security.
|
Modifier and Type | Method and Description |
---|---|
<X> List<X> |
getPermittedEntities(com.atlassian.user.User user,
Permission permission,
Iterator<? extends X> objects,
int maxResults)
Filter an iterator based on which entities in the list have a particular permission.
|
<X> List<X> |
getPermittedEntities(com.atlassian.user.User user,
Permission permission,
Iterator<X> objects,
int maxResults,
Collection<? extends PermissionManager.Criterion> otherCriteria)
Filter an iterator based on which entities in the list have a particular permission.
|
<X> List<X> |
getPermittedEntities(com.atlassian.user.User user,
Permission permission,
List<? extends X> objects)
Filter a list based on which entities in the list have a particular permission.
|
<X> List<X> |
getPermittedEntitiesNoExemptions(com.atlassian.user.User user,
Permission permission,
Iterator<? extends X> objects,
int maxResults)
Filter an iterator based on which entities in the list have a particular permission.
|
<X> List<X> |
getPermittedEntitiesNoExemptions(com.atlassian.user.User user,
Permission permission,
Iterator<X> objects,
int maxResults,
Collection<? extends PermissionManager.Criterion> otherCriteria)
Filter an iterator based on which entities in the list have a particular permission.
|
<X> List<X> |
getPermittedEntitiesNoExemptions(com.atlassian.user.User user,
Permission permission,
List<? extends X> objects)
Filter a list based on which entities in the list have a particular permission.
|
boolean |
hasCreatePermission(com.atlassian.user.User user,
Object container,
Class<?> typeToCreate)
Determine whether a user has permission to create an entity of a particular type within a given container.
|
boolean |
hasCreatePermission(com.atlassian.user.User user,
Object container,
Object objectToCreate)
Determine whether a user has permission to create a particular entity within a given container.
|
boolean |
hasMovePermission(com.atlassian.user.User user,
Object source,
Object target,
String movePoint)
Determine whether a user has permission to move a particular entity to a given target.
|
boolean |
hasPermission(com.atlassian.user.User user,
Permission permission,
Class targetType)
Determine whether a user has a particular permission for all instances of the specified target type.
|
boolean |
hasPermission(@Nullable com.atlassian.user.User user,
Permission permission,
@Nullable Object target)
Determine whether a user has a particular permission against a given target.
|
boolean |
hasPermissionNoExemptions(com.atlassian.user.User user,
Permission permission,
Object target)
Returns true if the user has the specified permission on the target object.
|
boolean |
hasRemoveHierarchyPermission(com.atlassian.user.User user,
Object target)
Determine whether a user has permission to remove a particular entity and all it children.
|
boolean |
isConfluenceAdministrator(com.atlassian.user.User user)
Determine if the user is a Confluence administrator.
|
boolean |
isSystemAdministrator(@Nullable com.atlassian.user.User user)
Determine if the user is a system administrator.
|
void |
withExemption(Runnable runnable)
Execute the given task with permission exemption.
|
static final Object TARGET_APPLICATION
static final Object TARGET_SYSTEM
static final Object TARGET_PEOPLE_DIRECTORY
@Transactional(readOnly=true) boolean hasPermission(@Nullable com.atlassian.user.User user, Permission permission, @Nullable Object target)
user
- the user seeking permission, or null if the anonymous user is being checked againstpermission
- the permission to checktarget
- the object that the permission is being checked against. If this object is null, the method
will return falseIllegalStateException
- if the permission being checked against does not apply to the target@Transactional(readOnly=true) boolean hasPermission(com.atlassian.user.User user, Permission permission, Class targetType)
user
- the userpermission
- the permission to check (see Permission
targetType
- the type of the target@Transactional(readOnly=true) boolean hasPermissionNoExemptions(com.atlassian.user.User user, Permission permission, Object target)
hasPermission(User, Permission, Object)
does.
For parameter and return value information, see hasPermission(User, Permission, Object)
.
@Transactional(readOnly=true) boolean hasCreatePermission(com.atlassian.user.User user, Object container, Class<?> typeToCreate)
The container is the natural container of the object being created. For example, a comment is contained in a page, which is contained within a space. A space is contained within TARGET_APPLICATION.
This overload should not be used when creating CustomContentEntityObject instances. In that case, permission
checks should use hasCreatePermission(com.atlassian.user.User, Object, Object)
.
user
- the user seeking permission, or null if the anonymous user is being checked againstcontainer
- the target that the object is being created within. If this object is null, the method
will return falsetypeToCreate
- the type of object being created (see above)IllegalStateException
- if the permission being checked against does not apply to the targetContentEntityObject.getType()
@Transactional(readOnly=true) boolean hasCreatePermission(com.atlassian.user.User user, Object container, Object objectToCreate)
The container is the natural container of the object being created. For example, a comment is contained in a page, which is contained within a space. A space is contained within TARGET_APPLICATION.
This overload is best when creating CustomContentEntityObject instances. Other permission checks should use
hasCreatePermission(com.atlassian.user.User, Object, Class)
.
user
- the user seeking permission, or null if the anonymous user is being checked againstcontainer
- the target that the object is being created within. If this object is null, the method
will return falseobjectToCreate
- the object being created (see above)IllegalStateException
- if the permission being checked against does not apply to the target@Transactional(readOnly=true) <X> List<X> getPermittedEntities(com.atlassian.user.User user, Permission permission, List<? extends X> objects)
user
- the user seeking permission, or null if the anonymous user is being checked againstpermission
- the permission to check against the objectsobjects
- the objects to check@Transactional(readOnly=true) <X> List<X> getPermittedEntities(com.atlassian.user.User user, Permission permission, Iterator<? extends X> objects, int maxResults)
user
- the user seeking permission, or null if the anonymous user is being checked againstpermission
- the permission to check against the objectsobjects
- the objects to checkmaxResults
- the maximum number of permitted entities to retrieve from the iterator (un-permitted entities are not counted)@Transactional(readOnly=true) <X> List<X> getPermittedEntities(com.atlassian.user.User user, Permission permission, Iterator<X> objects, int maxResults, Collection<? extends PermissionManager.Criterion> otherCriteria)
user
- the user seeking permission, or null if the anonymous user is being checked againstpermission
- the permission to check against the objectsobjects
- the objects to checkmaxResults
- the maximum number of permitted entities to retrieve from the iterator (un-permitted entities are not counted)otherCriteria
- a collection of PermissionManager.Criterion
objects through which the permitted entities must also be filtered@Transactional(readOnly=true) <X> List<X> getPermittedEntitiesNoExemptions(com.atlassian.user.User user, Permission permission, List<? extends X> objects)
getPermittedEntities(User, Permission, List)
does.user
- the user seeking permission, or null if the anonymous user is being checked againstpermission
- the permission to check against the objectsobjects
- the objects to check@Transactional(readOnly=true) <X> List<X> getPermittedEntitiesNoExemptions(com.atlassian.user.User user, Permission permission, Iterator<? extends X> objects, int maxResults)
getPermittedEntities(User, Permission, Iterator, int)
does.user
- the user seeking permission, or null if the anonymous user is being checked againstpermission
- the permission to check against the objectsobjects
- the objects to checkmaxResults
- the maximum number of permitted entities to retrieve from the iterator (un-permitted entities are not counted)@Transactional(readOnly=true) <X> List<X> getPermittedEntitiesNoExemptions(com.atlassian.user.User user, Permission permission, Iterator<X> objects, int maxResults, Collection<? extends PermissionManager.Criterion> otherCriteria)
getPermittedEntities(User, Permission, Iterator, int, Collection)
does. You may also supply additional
criteria through which to filter the iterator.user
- the user seeking permission, or null if the anonymous user is being checked againstpermission
- the permission to check against the objectsobjects
- the objects to checkmaxResults
- the maximum number of permitted entities to retrieve from the iterator (un-permitted entities are not counted)otherCriteria
- a collection of PermissionManager.Criterion
objects through which the permitted entities must also be filtered@Transactional(readOnly=true) boolean isConfluenceAdministrator(com.atlassian.user.User user)
hasPermission(user, Permission.ADMINISTER, PermissionManager.TARGET_APPLICATION)
.user
- the user to check permissions against@Transactional(readOnly=true) boolean isSystemAdministrator(@Nullable com.atlassian.user.User user)
hasPermission(user, Permission.ADMINISTER, PermissionManager.TARGET_SYSTEM)
.user
- the user to check permissions againstvoid withExemption(Runnable runnable)
Calls to:
hasPermission(com.atlassian.user.User, Permission, Object)
hasPermission(com.atlassian.user.User, Permission, Class)
hasCreatePermission(com.atlassian.user.User, Object, Object)
hasCreatePermission(com.atlassian.user.User, Object, Class)
SpacePermissionManager
and ConfluenceAccessManager
,
unless "noExemptions" variants are called.
Use with care.
runnable
- task to execute with permission exemption@Transactional(readOnly=true) boolean hasMovePermission(com.atlassian.user.User user, Object source, Object target, String movePoint)
The target is the natural container of the object being moved to. For example, a pages is contained in a page, which is contained within a space. A space is contained within TARGET_APPLICATION.
user
- the user seeking permission, or null if the anonymous user is being checked againstsource
- the object and all it descendants is being moved. If this object is null, the method
will return falsetarget
- where is the source being moved to (see above)movePoint
- indicate where source node and target node relative (i.a before, after, append)IllegalStateException
- if the permission being checked against does not apply to the target@Transactional(readOnly=true) boolean hasRemoveHierarchyPermission(com.atlassian.user.User user, Object target)
The target is the natural container of the object being removed. For example, a page and all its descendants in a page, which is contained within a space.
user
- the user seeking permission, or null if the anonymous user is being checked againsttarget
- where is the object and all its descendant are being removedIllegalStateException
- if the permission being checked against does not apply to the targetCopyright © 2003–2023 Atlassian. All rights reserved.
View cookie preferences