Class CachingSpacePermissionManager
- java.lang.Object
- 
- com.atlassian.confluence.impl.security.AbstractSpacePermissionManager
- 
- com.atlassian.confluence.impl.security.DefaultSpacePermissionManager
- 
- com.atlassian.confluence.impl.security.CachingSpacePermissionManager
 
 
 
- 
- All Implemented Interfaces:
- SpacePermissionManagerInternal,- SpacePermissionSaverInternal,- DefaultConfluenceAccessManager.AccessManagerPermissionChecker,- SpacePermissionManager,- SpacePermissionSaver
 - Direct Known Subclasses:
- RecoveryAwareCachingSpacePermissionManager
 
 @Internal @ParametersAreNonnullByDefault public class CachingSpacePermissionManager extends DefaultSpacePermissionManager Implementation of SpacePermissionManager that implements caching before a SpacePermission is requested, saved or removed from the SpacePermissionDao. This is designed to increase performance and reduce the amount of hits on the database.- Since:
- 7.16
 
- 
- 
Constructor SummaryConstructors Constructor Description CachingSpacePermissionManager(SpacePermissionDao spacePermissionDao, PermissionCheckExemptions permissionCheckExemptions, SpacePermissionDefaultsStoreFactory spacePermissionDefaultsStoreFactory, TransactionAwareCacheFactory cacheFactory, com.atlassian.event.api.EventPublisher eventPublisher, ConfluenceAccessManager confluenceAccessManager, SpacePermissionAccessMapper spacePermissionAccessMapper, com.atlassian.crowd.embedded.api.CrowdService crowdService, ConfluenceUserResolver userResolver, AccessModeManager accessModeManager, ScopesRequestCacheDelegate scopesRequestCacheDelegate, GlobalSettingsManager settingsManager, GroupResolver groupResolver)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidflushCaches()protected Set<String>getGroupNamesWithPermission(@Nullable Space targetSpace, String permissionType)booleanhasPermissionNoExemptions(String permissionType, @Nullable Space space, @Nullable com.atlassian.user.User remoteUser)Returns true if the user has the specified permission on the target space.booleanisLookAheadEnabled()booleanpermissionExists(SpacePermission permission)Looks up permission in the cache instance.protected voidremoveAllPermissionsFromDao(Space space)protected voidremovePermissionFromDao(SpacePermission spacePermission)Removes realPermission from the DAO.protected voidsavePermissionToDao(SpacePermission spacePermission)Saves permission to the DAO.voidsetLookAheadEnabled(boolean lookAheadEnabled)- 
Methods inherited from class com.atlassian.confluence.impl.security.DefaultSpacePermissionManagercreateDefaultSpacePermissions, createPrivateSpacePermissions, getAllPermissionsForGroup, getAllPermissionsForUser, getGlobalPermissions, getGlobalPermissions, getGroupsForPermissionType, getGroupsWithPermissions, getUsersForPermissionType, getUsersWithPermissions, removeAllPermissions, removeAllPermissions, removeAllPermissionsForGroup, removeAllPermissionsForGroup, removeAllUserPermissions, removeAllUserPermissions, removeGlobalPermissionForUser, removeGlobalPermissionForUser, removePermission, removePermission, savePermission, savePermission
 - 
Methods inherited from class com.atlassian.confluence.impl.security.AbstractSpacePermissionManagergetDefaultGlobalPermissions, groupHasPermission, hasAllPermissions, hasGlobalPermissionViaGroups, hasPermission, hasPermissionForSpace, isPermittedInReadOnlyAccessMode
 
- 
 
- 
- 
- 
Constructor Detail- 
CachingSpacePermissionManagerpublic CachingSpacePermissionManager(SpacePermissionDao spacePermissionDao, PermissionCheckExemptions permissionCheckExemptions, SpacePermissionDefaultsStoreFactory spacePermissionDefaultsStoreFactory, TransactionAwareCacheFactory cacheFactory, com.atlassian.event.api.EventPublisher eventPublisher, ConfluenceAccessManager confluenceAccessManager, SpacePermissionAccessMapper spacePermissionAccessMapper, com.atlassian.crowd.embedded.api.CrowdService crowdService, ConfluenceUserResolver userResolver, AccessModeManager accessModeManager, ScopesRequestCacheDelegate scopesRequestCacheDelegate, GlobalSettingsManager settingsManager, GroupResolver groupResolver) 
 
- 
 - 
Method Detail- 
permissionExistspublic boolean permissionExists(SpacePermission permission) Looks up permission in the cache instance. If it is not found, then it is looked up by the DAO and the result (true or false) is also recorded.If permission belongs to a space, it is looked up in the Space's own permissions list. In addition, when lookAheadEnabled is true, #doLookAheadCache will be called and the results cached, provided permission does not belong to a space. - Specified by:
- permissionExistsin interface- DefaultConfluenceAccessManager.AccessManagerPermissionChecker
- Specified by:
- permissionExistsin interface- SpacePermissionManager
- Overrides:
- permissionExistsin class- DefaultSpacePermissionManager
- Parameters:
- permission- the SpacePermission to look up
- Returns:
- true if the permission exists, false otherwise
 
 - 
savePermissionToDaoprotected void savePermissionToDao(SpacePermission spacePermission) Saves permission to the DAO. In addition, this method removes the permission from the cache, to prevent corruption of the cache when there is a transaction rollback (since the cache isn't transactional)- Overrides:
- savePermissionToDaoin class- DefaultSpacePermissionManager
- Parameters:
- spacePermission- the SpacePermission to save
 
 - 
removePermissionFromDaoprotected void removePermissionFromDao(SpacePermission spacePermission) Removes realPermission from the DAO. In addition, the permission is also removed from the cache.- Overrides:
- removePermissionFromDaoin class- DefaultSpacePermissionManager
- Parameters:
- spacePermission- the SpacePermission to remove
 
 - 
removeAllPermissionsFromDaoprotected void removeAllPermissionsFromDao(Space space) - Overrides:
- removeAllPermissionsFromDaoin class- DefaultSpacePermissionManager
 
 - 
flushCachespublic void flushCaches() - Specified by:
- flushCachesin interface- SpacePermissionManager
- Overrides:
- flushCachesin class- DefaultSpacePermissionManager
 
 - 
isLookAheadEnabledpublic boolean isLookAheadEnabled() 
 - 
setLookAheadEnabledpublic void setLookAheadEnabled(boolean lookAheadEnabled) 
 - 
hasPermissionNoExemptionspublic boolean hasPermissionNoExemptions(String permissionType, @Nullable Space space, @Nullable com.atlassian.user.User remoteUser) Description copied from interface:SpacePermissionManagerReturns true if the user has the specified permission on the target space. This method does not allow exemptions for super-users likeSpacePermissionManager.hasPermission(String, Space, User)does.For parameter and return value information, see SpacePermissionManager.hasPermission(String, Space, User).- Specified by:
- hasPermissionNoExemptionsin interface- SpacePermissionManager
- Overrides:
- hasPermissionNoExemptionsin class- AbstractSpacePermissionManager
 
 - 
getGroupNamesWithPermissionprotected Set<String> getGroupNamesWithPermission(@Nullable Space targetSpace, String permissionType) - Overrides:
- getGroupNamesWithPermissionin class- DefaultSpacePermissionManager
 
 
- 
 
-