Class DefaultPermissionManager
- java.lang.Object
- 
- com.atlassian.confluence.security.DefaultPermissionManager
 
- 
- All Implemented Interfaces:
- PermissionDelegateRegistry,- PermissionManager
 
 public class DefaultPermissionManager extends Object implements PermissionManager, PermissionDelegateRegistry Default implementation of PermissionManager. Delegates all the decision-making to a collection of delegates that handle the per-target-type permission checking.- Since:
- 2.0
- See Also:
- PermissionDelegate
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from interface com.atlassian.confluence.security.PermissionManagerPermissionManager.Criterion
 
- 
 - 
Field Summary- 
Fields inherited from interface com.atlassian.confluence.security.PermissionManagerTARGET_APPLICATION, TARGET_PEOPLE_DIRECTORY, TARGET_SYSTEM
 
- 
 - 
Constructor SummaryConstructors Constructor Description DefaultPermissionManager()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description <X> List<X>getPermittedEntities(ConfluenceUser 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(ConfluenceUser user, Permission permission, Iterator<X> entities, 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(ConfluenceUser 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(ConfluenceUser 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(ConfluenceUser user, Permission permission, Iterator<X> entities, 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(ConfluenceUser user, Permission permission, List<? extends X> objects)Filter a list based on which entities in the list have a particular permission.booleanhasCreatePermission(ConfluenceUser user, Object container, Class<?> typeToCreate)Determine whether a user has permission to create an entity of a particular type within a given container.booleanhasCreatePermission(ConfluenceUser user, Object container, Object objectToCreate)Determine whether a user has permission to create a particular entity within a given container.booleanhasMovePermission(ConfluenceUser user, Object source, Object target, String movePoint)Determine whether a user has permission to move a particular entity to a given target.booleanhasPermission(ConfluenceUser user, Permission permission, Class targetType)Determine whether a user has a particular permission for all instances of the specified target type.booleanhasPermission(ConfluenceUser user, Permission permission, Object target)Determine whether a user has a particular permission against a given target.booleanhasPermissionNoExemptions(ConfluenceUser user, Permission permission, Object target)Returns true if the user has the specified permission on the target object.booleanhasRemoveHierarchyPermission(ConfluenceUser user, Object target)Determine whether a user has permission to remove a particular entity and all it children.booleanisConfluenceAdministrator(ConfluenceUser user)Determine if the user is a Confluence administrator.booleanisSystemAdministrator(ConfluenceUser user)Determine if the user is a system administrator.voidregister(String key, PermissionDelegate<?> delegate)voidsetAccessModeManager(AccessModeManager accessModeManager)voidsetConfluenceAccessManager(ConfluenceAccessManager confluenceAccessManager)voidsetContentTypeManager(ContentTypeManager contentTypeManager)Deprecated.since 7.16 usesetContentTypeModuleResolver(ContentTypeModuleResolver)voidsetContentTypeModuleResolver(ContentTypeModuleResolver contentTypeModuleResolver)voidsetDelegates(Map<String,PermissionDelegate> delegates)Deprecated.since 7.15 useregister(String, PermissionDelegate)voidsetPermissionCheckExemptions(PermissionCheckExemptions permissionCheckExemptions)voidsetScopesRequestCacheDelegate(ScopesRequestCacheDelegate scopesRequestCache)voidwithExemption(Runnable runnable)Execute the given task with permission exemption.- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface com.atlassian.confluence.security.PermissionManagergetPermittedEntities, getPermittedEntities, getPermittedEntities, getPermittedEntitiesNoExemptions, getPermittedEntitiesNoExemptions, getPermittedEntitiesNoExemptions, hasCreatePermission, hasCreatePermission, hasMovePermission, hasPermission, hasPermission, hasPermissionNoExemptions, hasRemoveHierarchyPermission, isConfluenceAdministrator, isSystemAdministrator
 
- 
 
- 
- 
- 
Method Detail- 
hasPermissionpublic boolean hasPermission(ConfluenceUser user, Permission permission, Object target) Description copied from interface:PermissionManagerDetermine whether a user has a particular permission against a given target.- Specified by:
- hasPermissionin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- permission- the permission to check
- target- the object that the permission is being checked against. If this object is null, the method will return false
- Returns:
- true if the user has this permission, false otherwise
 
 - 
hasPermissionpublic boolean hasPermission(ConfluenceUser user, Permission permission, Class targetType) Description copied from interface:PermissionManagerDetermine whether a user has a particular permission for all instances of the specified target type.- Specified by:
- hasPermissionin interface- PermissionManager
- Parameters:
- user- the user
- permission- the permission to check (see- Permission
- targetType- the type of the target
- Returns:
- true if the user has this permission, false otherwise.
 
 - 
hasPermissionNoExemptionspublic boolean hasPermissionNoExemptions(ConfluenceUser user, Permission permission, Object target) Returns true if the user has the specified permission on the target object. Does not allow exemptions for super-users likehasPermission(ConfluenceUser, Permission, Object)does.This implementation should become the default one once the exemption for the 'confluence-administrators' group is removed. For parameter and return value information, see hasPermission(ConfluenceUser, Permission, Object).- Specified by:
- hasPermissionNoExemptionsin interface- PermissionManager
 
 - 
hasCreatePermissionpublic boolean hasCreatePermission(ConfluenceUser user, Object container, Class<?> typeToCreate) Description copied from interface:PermissionManagerDetermine whether a user has permission to create an entity of a particular type within a given container.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 PermissionManager.hasCreatePermission(com.atlassian.user.User, Object, Object).- Specified by:
- hasCreatePermissionin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- container- the target that the object is being created within. If this object is null, the method will return false
- typeToCreate- the type of object being created (see above)
- Returns:
- true if the user has permission, false otherwise
- See Also:
- ContentEntityObject.getType()
 
 - 
hasCreatePermissionpublic boolean hasCreatePermission(ConfluenceUser user, Object container, Object objectToCreate) Description copied from interface:PermissionManagerDetermine whether a user has permission to create a particular entity within a given container.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 PermissionManager.hasCreatePermission(com.atlassian.user.User, Object, Class).- Specified by:
- hasCreatePermissionin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- container- the target that the object is being created within. If this object is null, the method will return false
- objectToCreate- the object being created (see above)
- Returns:
- true if the user has permission, false otherwise
 
 - 
getPermittedEntitiespublic <X> List<X> getPermittedEntities(ConfluenceUser user, Permission permission, List<? extends X> objects) Description copied from interface:PermissionManagerFilter a list based on which entities in the list have a particular permission.- Specified by:
- getPermittedEntitiesin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- permission- the permission to check against the objects
- objects- the objects to check
- Returns:
- a new list of those members of the objects list that satisfy the given permission for the user
 
 - 
getPermittedEntitiespublic <X> List<X> getPermittedEntities(ConfluenceUser user, Permission permission, Iterator<? extends X> objects, int maxResults) Description copied from interface:PermissionManagerFilter an iterator based on which entities in the list have a particular permission.- Specified by:
- getPermittedEntitiesin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- permission- the permission to check against the objects
- objects- the objects to check
- maxResults- the maximum number of permitted entities to retrieve from the iterator (un-permitted entities are not counted)
- Returns:
- a new list of those members of the objects list that satisfy the given permission for the user
 
 - 
getPermittedEntitiespublic <X> List<X> getPermittedEntities(ConfluenceUser user, Permission permission, Iterator<X> entities, int maxResults, Collection<? extends PermissionManager.Criterion> otherCriteria) Description copied from interface:PermissionManagerFilter an iterator based on which entities in the list have a particular permission. You may also supply additional criteria through which to filter the iterator.- Specified by:
- getPermittedEntitiesin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- permission- the permission to check against the objects
- entities- the objects to check
- maxResults- the maximum number of permitted entities to retrieve from the iterator (un-permitted entities are not counted)
- otherCriteria- a collection of- PermissionManager.Criterionobjects through which the permitted entities must also be filtered
- Returns:
- a new list of those members of the objects list that satisfy the given permission for the user
 
 - 
getPermittedEntitiesNoExemptionspublic <X> List<X> getPermittedEntitiesNoExemptions(ConfluenceUser user, Permission permission, List<? extends X> objects) Description copied from interface:PermissionManagerFilter a list based on which entities in the list have a particular permission. This method does not allow exemptions for super-users likePermissionManager.getPermittedEntities(User, Permission, List)does.- Specified by:
- getPermittedEntitiesNoExemptionsin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- permission- the permission to check against the objects
- objects- the objects to check
- Returns:
- a new list of those members of the objects list that satisfy the given permission for the user
 
 - 
getPermittedEntitiesNoExemptionspublic <X> List<X> getPermittedEntitiesNoExemptions(ConfluenceUser user, Permission permission, Iterator<? extends X> objects, int maxResults) Description copied from interface:PermissionManagerFilter an iterator based on which entities in the list have a particular permission. This method does not allow exemptions for super-users likePermissionManager.getPermittedEntities(User, Permission, Iterator, int)does.- Specified by:
- getPermittedEntitiesNoExemptionsin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- permission- the permission to check against the objects
- objects- the objects to check
- maxResults- the maximum number of permitted entities to retrieve from the iterator (un-permitted entities are not counted)
- Returns:
- a new list of those members of the objects list that satisfy the given permission for the user
 
 - 
getPermittedEntitiesNoExemptionspublic <X> List<X> getPermittedEntitiesNoExemptions(ConfluenceUser user, Permission permission, Iterator<X> entities, int maxResults, Collection<? extends PermissionManager.Criterion> otherCriteria) Description copied from interface:PermissionManagerFilter an iterator based on which entities in the list have a particular permission. This method does not allow exemptions for super-users likePermissionManager.getPermittedEntities(User, Permission, Iterator, int, Collection)does. You may also supply additional criteria through which to filter the iterator.- Specified by:
- getPermittedEntitiesNoExemptionsin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- permission- the permission to check against the objects
- entities- the objects to check
- maxResults- the maximum number of permitted entities to retrieve from the iterator (un-permitted entities are not counted)
- otherCriteria- a collection of- PermissionManager.Criterionobjects through which the permitted entities must also be filtered
- Returns:
- a new list of those members of the objects list that satisfy the given permission for the user
 
 - 
isConfluenceAdministratorpublic boolean isConfluenceAdministrator(ConfluenceUser user) Description copied from interface:PermissionManagerDetermine if the user is a Confluence administrator. Calling this method is identical to callinghasPermission(user, Permission.ADMINISTER, PermissionManager.TARGET_APPLICATION).- Specified by:
- isConfluenceAdministratorin interface- PermissionManager
- Parameters:
- user- the user to check permissions against
- Returns:
- true if the user is a Confluence administrator, false otherwise
 
 - 
isSystemAdministratorpublic boolean isSystemAdministrator(ConfluenceUser user) Description copied from interface:PermissionManagerDetermine if the user is a system administrator. Calling this method is identical to callinghasPermission(user, Permission.ADMINISTER, PermissionManager.TARGET_SYSTEM).- Specified by:
- isSystemAdministratorin interface- PermissionManager
- Parameters:
- user- the user to check permissions against
- Returns:
- true if the user is a system administrator, false otherwise
 
 - 
withExemptionpublic void withExemption(Runnable runnable) Description copied from interface:PermissionManagerExecute the given task with permission exemption.Calls to: - PermissionManager.hasPermission(com.atlassian.user.User, Permission, Object)
- PermissionManager.hasPermission(com.atlassian.user.User, Permission, Class)
- PermissionManager.hasCreatePermission(com.atlassian.user.User, Object, Object)
- PermissionManager.hasCreatePermission(com.atlassian.user.User, Object, Class)
 SpacePermissionManagerandConfluenceAccessManager, unless "noExemptions" variants are called.Use with care. - Specified by:
- withExemptionin interface- PermissionManager
- Parameters:
- runnable- task to execute with permission exemption
 
 - 
setDelegates@Deprecated public void setDelegates(Map<String,PermissionDelegate> delegates) Deprecated.since 7.15 useregister(String, PermissionDelegate)
 - 
setPermissionCheckExemptionspublic void setPermissionCheckExemptions(PermissionCheckExemptions permissionCheckExemptions) 
 - 
setContentTypeManager@Deprecated public void setContentTypeManager(ContentTypeManager contentTypeManager) Deprecated.since 7.16 usesetContentTypeModuleResolver(ContentTypeModuleResolver)
 - 
setContentTypeModuleResolverpublic void setContentTypeModuleResolver(ContentTypeModuleResolver contentTypeModuleResolver) - Since:
- 7.16
 
 - 
setConfluenceAccessManagerpublic void setConfluenceAccessManager(ConfluenceAccessManager confluenceAccessManager) 
 - 
setAccessModeManagerpublic void setAccessModeManager(AccessModeManager accessModeManager) 
 - 
setScopesRequestCacheDelegatepublic void setScopesRequestCacheDelegate(ScopesRequestCacheDelegate scopesRequestCache) 
 - 
hasMovePermissionpublic boolean hasMovePermission(ConfluenceUser user, Object source, Object target, String movePoint) Description copied from interface:PermissionManagerDetermine whether a user has permission to move a particular entity to a given target.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. - Specified by:
- hasMovePermissionin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- source- the object and all it descendants is being moved. If this object is null, the method will return false
- target- where is the source being moved to (see above)
- movePoint- indicate where source node and target node relative (i.a before, after, append)
- Returns:
- true if the user has permission, false otherwise
 
 - 
hasRemoveHierarchyPermissionpublic boolean hasRemoveHierarchyPermission(ConfluenceUser user, Object target) Description copied from interface:PermissionManagerDetermine whether a user has permission to remove a particular entity and all it children.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. - Specified by:
- hasRemoveHierarchyPermissionin interface- PermissionManager
- Parameters:
- user- the user seeking permission, or null if the anonymous user is being checked against
- target- where is the object and all its descendant are being removed
- Returns:
- true if the user has permission, false otherwise
 
 - 
registerpublic void register(String key, PermissionDelegate<?> delegate) - Specified by:
- registerin interface- PermissionDelegateRegistry
- Since:
- 7.15
 
 
- 
 
-