com.atlassian.confluence.security
Class CachingSpacePermissionManager
java.lang.Object
com.atlassian.confluence.security.AbstractSpacePermissionManager
com.atlassian.confluence.security.DefaultSpacePermissionManager
com.atlassian.confluence.security.CachingSpacePermissionManager
- All Implemented Interfaces:
- SpacePermissionManager
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.
Field Summary |
static java.lang.String |
CACHE_KEY
|
Methods inherited from class com.atlassian.confluence.security.DefaultSpacePermissionManager |
createInitialSpacePermissions, createInitialSpacePermissions, getAllPermissionsForGroup, getAllPermissionsForUser, getGlobalPermissions, getGlobalPermissions, getGroupsForPermissionType, getGroupsWithPermissions, getUsersForPermissionType, getUsersWithPermissions, groupHasPermission, hasPermission, hasPermission, removeAllPermissionsForGroup, removeAllUserPermissions, removePermission, removePermissions, savePermission |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CACHE_KEY
public static final java.lang.String CACHE_KEY
CachingSpacePermissionManager
public CachingSpacePermissionManager()
permissionExists
public 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:
permissionExists
in interface SpacePermissionManager
- Overrides:
permissionExists
in class DefaultSpacePermissionManager
- Parameters:
permission
- the SpacePermission to look up
- Returns:
- true if the permission exists, false otherwise
savePermissionToDao
protected void savePermissionToDao(SpacePermission permission)
- 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:
savePermissionToDao
in class DefaultSpacePermissionManager
- Parameters:
permission
- the SpacePermission to save
removePermissionFromDao
protected void removePermissionFromDao(SpacePermission realPermission)
- Removes realPermission from the DAO. In addition, the permission is
also removed from the cache.
- Overrides:
removePermissionFromDao
in class DefaultSpacePermissionManager
- Parameters:
realPermission
- the SpacePermission to remove
removeAllPermissions
public void removeAllPermissions(Space space)
- Description copied from interface:
SpacePermissionManager
- Removes all permissions belonging to space
- Specified by:
removeAllPermissions
in interface SpacePermissionManager
- Overrides:
removeAllPermissions
in class DefaultSpacePermissionManager
- Parameters:
space
- The space to remove the permissions for
setCacheFactory
public void setCacheFactory(com.atlassian.cache.CacheFactory cacheFactory)
flushCaches
public void flushCaches()
- Specified by:
flushCaches
in interface SpacePermissionManager
- Overrides:
flushCaches
in class DefaultSpacePermissionManager
isLookAheadEnabled
public boolean isLookAheadEnabled()
setLookAheadEnabled
public void setLookAheadEnabled(boolean lookAheadEnabled)
Copyright © 2003-2008 Atlassian Pty Ltd. All Rights Reserved.