Class CoarseGrainedCachingSpacePermissionManager
- java.lang.Object
- 
- com.atlassian.confluence.impl.security.AbstractSpacePermissionManager
- 
- com.atlassian.confluence.impl.security.CoarseGrainedCachingSpacePermissionManager
 
 
- 
- All Implemented Interfaces:
- SpacePermissionManagerInternal,- SpacePermissionSaverInternal,- DefaultConfluenceAccessManager.AccessManagerPermissionChecker,- SpacePermissionManager,- SpacePermissionSaver
 - Direct Known Subclasses:
- RecoveryAwareCGCachingSpacePermissionManager
 
 public class CoarseGrainedCachingSpacePermissionManager extends AbstractSpacePermissionManager Space permission manager that caches all permissions for each space.Whenever there is a cache miss, all permissions for the current space (can be global) are fetched in one go and cached as one block. Entries can be primed before they are needed and the entries will never expire. Any permission changes will invalidate the cache entry for the affected space. - Since:
- 5.9
- See Also:
- SpacePermissionCachePrimer
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected SpacePermissionDaospacePermissionDao
 - 
Constructor SummaryConstructors Constructor Description CoarseGrainedCachingSpacePermissionManager(PermissionCheckExemptions permissionCheckExemptions, com.atlassian.cache.CacheFactory cacheFactory, SpacePermissionManagerInternal delegate, SpacePermissionDao spacePermissionDao, com.atlassian.event.api.EventPublisher eventPublisher, ConfluenceAccessManager confluenceAccessManager, SpacePermissionAccessMapper spacePermissionAccessMapper, com.atlassian.crowd.embedded.api.CrowdService crowdService, AccessModeManager accessModeManager, ScopesRequestCacheDelegate scopesRequestCacheDelegate, GlobalSettingsManager settingsManager)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidcreateDefaultSpacePermissions(Space space)voidcreatePrivateSpacePermissions(Space space)voidflushCaches()List<SpacePermission>getAllPermissionsForGroup(String group)List<SpacePermission>getGlobalPermissions()List<SpacePermission>getGlobalPermissions(String permissionType)protected Iterable<String>getGroupNamesWithPermission(@Nullable Space targetSpace, String permissionType)Map<String,Long>getGroupsForPermissionType(String permissionType, Space space)Collection<com.atlassian.user.Group>getGroupsWithPermissions(@Nullable Space space)Returns all groups which have permissions in a space or on a global level.Map<String,Long>getUsersForPermissionType(String permissionType, Space space)Collection<com.atlassian.user.User>getUsersWithPermissions(@Nullable Space space)Returns a collection of user objects with VIEWSPACE_PERMISSION in the space.booleanpermissionExists(SpacePermission permission)Check whether the given SpacePermission exists.voidprime(Iterable<? extends Space> spaces)voidremoveAllPermissions(Space space)Deprecated.since 5.9.voidremoveAllPermissions(Space space, SpacePermissionContext context)Removes all permissions belonging to spacevoidremoveAllPermissionsForGroup(String group)Deprecated.since 5.8.voidremoveAllPermissionsForGroup(String group, SpacePermissionContext context)Removes all permissions for the given group.voidremoveAllUserPermissions(ConfluenceUser user)Deprecated.since 5.9.voidremoveAllUserPermissions(ConfluenceUser user, SpacePermissionContext context)Removes all permissions for the given user.voidremoveGlobalPermissionForUser(ConfluenceUser user, String permissionType)Deprecated.since 5.9.voidremoveGlobalPermissionForUser(ConfluenceUser user, String permissionType, SpacePermissionContext context)Removes global permission of specified type that is directly associated with a user.voidremovePermission(SpacePermission permission)Deprecated.since 5.9.voidremovePermission(SpacePermission permission, SpacePermissionContext context)Removes the given permission.voidsavePermission(SpacePermission permission)Deprecated.since 5.9.voidsavePermission(SpacePermission permission, SpacePermissionContext context)Saves the permission.- 
Methods inherited from class com.atlassian.confluence.impl.security.AbstractSpacePermissionManagergetDefaultGlobalPermissions, groupHasPermission, hasAllPermissions, hasGlobalPermissionViaGroups, hasPermission, hasPermissionForSpace, hasPermissionNoExemptions, isPermittedInReadOnlyAccessMode
 - 
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.SpacePermissionManagergetDefaultGlobalPermissions, groupHasPermission, hasAllPermissions, hasPermission, hasPermissionForSpace, hasPermissionNoExemptions, isPermittedInReadOnlyAccessMode
 
- 
 
- 
- 
- 
Field Detail- 
spacePermissionDaoprotected final SpacePermissionDao spacePermissionDao 
 
- 
 - 
Constructor Detail- 
CoarseGrainedCachingSpacePermissionManagerpublic CoarseGrainedCachingSpacePermissionManager(PermissionCheckExemptions permissionCheckExemptions, com.atlassian.cache.CacheFactory cacheFactory, SpacePermissionManagerInternal delegate, SpacePermissionDao spacePermissionDao, com.atlassian.event.api.EventPublisher eventPublisher, ConfluenceAccessManager confluenceAccessManager, SpacePermissionAccessMapper spacePermissionAccessMapper, com.atlassian.crowd.embedded.api.CrowdService crowdService, AccessModeManager accessModeManager, ScopesRequestCacheDelegate scopesRequestCacheDelegate, GlobalSettingsManager settingsManager) - Since:
- 7.5
 
 
- 
 - 
Method Detail- 
removeAllPermissions@Deprecated public void removeAllPermissions(Space space) Deprecated.Description copied from interface:SpacePermissionManagerRemoves all permissions belonging to space- Specified by:
- removeAllPermissionsin interface- SpacePermissionManager
- Parameters:
- space- The space to remove the permissions for
 
 - 
removeAllPermissionspublic void removeAllPermissions(Space space, SpacePermissionContext context) Description copied from interface:SpacePermissionManagerInternalRemoves all permissions belonging to space- Specified by:
- removeAllPermissionsin interface- SpacePermissionManagerInternal
- Parameters:
- space- The space to remove the permissions for
- context- The context for this removal
 
 - 
removePermission@Deprecated public void removePermission(SpacePermission permission) Deprecated.Description copied from interface:SpacePermissionManagerRemoves the given permission, and generates aSpacePermissionRemoveEventin the process.- Specified by:
- removePermissionin interface- SpacePermissionManager
- Parameters:
- permission- the permission to remove
 
 - 
removePermissionpublic void removePermission(SpacePermission permission, SpacePermissionContext context) Description copied from interface:SpacePermissionManagerInternalRemoves the given permission.May generate a SpacePermissionRemoveEventin the process, depending on the context.- Specified by:
- removePermissionin interface- SpacePermissionManagerInternal
- Parameters:
- permission- the permission to remove
- context- the context for the removal
 
 - 
removeAllUserPermissions@Deprecated public void removeAllUserPermissions(ConfluenceUser user) Deprecated.Description copied from interface:SpacePermissionManagerRemoves all permissions for the given user, and generates aSpacePermissionsRemoveForUserEventin the process.- Specified by:
- removeAllUserPermissionsin interface- SpacePermissionManager
 
 - 
removeAllUserPermissionspublic void removeAllUserPermissions(ConfluenceUser user, SpacePermissionContext context) Description copied from interface:SpacePermissionManagerInternalRemoves all permissions for the given user.May generate a SpacePermissionsRemoveForUserEventin the process, depending on the context.- Specified by:
- removeAllUserPermissionsin interface- SpacePermissionManagerInternal
- Parameters:
- user- the user to remove permissions for
- context- the context for the removal
 
 - 
removeGlobalPermissionForUser@Deprecated public void removeGlobalPermissionForUser(ConfluenceUser user, String permissionType) Deprecated.Description copied from interface:SpacePermissionManagerRemoves global permission of specified type that is directly associated with a user, and generates aSpacePermissionsRemoveForUserEventin the process.- Specified by:
- removeGlobalPermissionForUserin interface- SpacePermissionManager
- Parameters:
- user- the user to look up
- permissionType- the permission type to remove
 
 - 
removeGlobalPermissionForUserpublic void removeGlobalPermissionForUser(ConfluenceUser user, String permissionType, SpacePermissionContext context) Description copied from interface:SpacePermissionManagerInternalRemoves global permission of specified type that is directly associated with a user.May generate a SpacePermissionsRemoveForUserEventin the process, depending on the context.- Specified by:
- removeGlobalPermissionForUserin interface- SpacePermissionManagerInternal
- Parameters:
- user- the user to look up
- permissionType- the permission type to remove
- context- the context for the removal
 
 - 
removeAllPermissionsForGroup@Deprecated public void removeAllPermissionsForGroup(String group) Deprecated.Description copied from interface:SpacePermissionManagerRemoves all permissions for the given group, and generates aSpacePermissionsRemoveForGroupEventin the process.- Specified by:
- removeAllPermissionsForGroupin interface- SpacePermissionManager
- Parameters:
- group- the group to remove
 
 - 
removeAllPermissionsForGrouppublic void removeAllPermissionsForGroup(String group, SpacePermissionContext context) Description copied from interface:SpacePermissionManagerInternalRemoves all permissions for the given group.May generate a SpacePermissionsRemoveForGroupEventin the process, depending on the context.- Specified by:
- removeAllPermissionsForGroupin interface- SpacePermissionManagerInternal
- Parameters:
- group- the group to remove
 
 - 
getAllPermissionsForGrouppublic List<SpacePermission> getAllPermissionsForGroup(String group) - Specified by:
- getAllPermissionsForGroupin interface- SpacePermissionManager
 
 - 
getGlobalPermissionspublic List<SpacePermission> getGlobalPermissions() - Specified by:
- getGlobalPermissionsin interface- SpacePermissionManager
 
 - 
getGlobalPermissionspublic List<SpacePermission> getGlobalPermissions(String permissionType) - Specified by:
- getGlobalPermissionsin interface- SpacePermissionManager
 
 - 
flushCachespublic void flushCaches() - Specified by:
- flushCachesin interface- SpacePermissionManager
 
 - 
createDefaultSpacePermissionspublic void createDefaultSpacePermissions(Space space) - Specified by:
- createDefaultSpacePermissionsin interface- SpacePermissionManager
 
 - 
createPrivateSpacePermissionspublic void createPrivateSpacePermissions(Space space) - Specified by:
- createPrivateSpacePermissionsin interface- SpacePermissionManager
 
 - 
getGroupsWithPermissionspublic Collection<com.atlassian.user.Group> getGroupsWithPermissions(@Nullable Space space) Description copied from interface:SpacePermissionManagerReturns all groups which have permissions in a space or on a global level. If space is null, permissions on the global level will be checked.- Specified by:
- getGroupsWithPermissionsin interface- SpacePermissionManager
- Parameters:
- space- - space to query, if null global permissions returned
- Returns:
- Collection of groups with permissions
 
 - 
getGroupsForPermissionTypepublic Map<String,Long> getGroupsForPermissionType(String permissionType, Space space) - Specified by:
- getGroupsForPermissionTypein interface- SpacePermissionManager
 
 - 
getUsersWithPermissionspublic Collection<com.atlassian.user.User> getUsersWithPermissions(@Nullable Space space) Description copied from interface:SpacePermissionManagerReturns a collection of user objects with VIEWSPACE_PERMISSION in the space. If no space is provided A list of users with USE_CONFLUENCE_PERMISSION will be returned- Specified by:
- getUsersWithPermissionsin interface- SpacePermissionManager
- Parameters:
- space- - space to query, if null global permissions returned
- Returns:
- Collection of User objects
 
 - 
getUsersForPermissionTypepublic Map<String,Long> getUsersForPermissionType(String permissionType, Space space) - Specified by:
- getUsersForPermissionTypein interface- SpacePermissionManager
 
 - 
getGroupNamesWithPermissionprotected Iterable<String> getGroupNamesWithPermission(@Nullable Space targetSpace, String permissionType) - Specified by:
- getGroupNamesWithPermissionin class- AbstractSpacePermissionManager
 
 - 
permissionExistspublic boolean permissionExists(SpacePermission permission) Description copied from interface:SpacePermissionManagerCheck whether the given SpacePermission exists. Checks by attribute equality rather than by id.- Specified by:
- permissionExistsin interface- DefaultConfluenceAccessManager.AccessManagerPermissionChecker
- Specified by:
- permissionExistsin interface- SpacePermissionManager
- Parameters:
- permission- the permission to look for.
- Returns:
- true if the permission is recognised by the manager as existing.
 
 - 
savePermission@Deprecated public void savePermission(SpacePermission permission) Deprecated.Description copied from interface:SpacePermissionSaverSaves the permission, and generates aSpacePermissionSaveEventin the process.- Specified by:
- savePermissionin interface- SpacePermissionSaver
 
 - 
savePermissionpublic void savePermission(SpacePermission permission, SpacePermissionContext context) Description copied from interface:SpacePermissionSaverInternalSaves the permission.May generate a SpacePermissionSaveEventin the process, depending on the context.- Specified by:
- savePermissionin interface- SpacePermissionSaverInternal
- Parameters:
- permission- the permission to save
- context- the context for the save
 
 
- 
 
-