public class DefaultPermissionQueryCache extends Object implements PermissionQueryCache
getPermissionQuery
causes permission filter to be precomputed and cached in CachingWrapperFilter
which gives us an extra benefit of precalculating its BitSet.
Caching can be disabled:
RequestCacheKeys.WRAP_PERMISSION_FILTER_IN_CACHED_WRAPPER_CACHE
feature flagdisableCacheForRequest()
Constructor and Description |
---|
DefaultPermissionQueryCache(PermissionsFilterGenerator permissionsFilterGenerator) |
Modifier and Type | Method and Description |
---|---|
void |
disableCacheForRequest()
Disables cache usage for this http request.
|
Optional<org.apache.lucene.search.Query> |
getPermissionQuery(ApplicationUser searchUser)
Gets permission cache for passed
searchUser . |
Optional<org.apache.lucene.search.Query> |
getPermissionQuery(ApplicationUser searchUser,
Collection<Project> projects)
Gets permission cache for passed
searchUser in given projects . |
public DefaultPermissionQueryCache(PermissionsFilterGenerator permissionsFilterGenerator)
public Optional<org.apache.lucene.search.Query> getPermissionQuery(ApplicationUser searchUser)
PermissionQueryCache
searchUser
.getPermissionQuery
in interface PermissionQueryCache
searchUser
- Application userOptional
with cached permission filter or Optional.empty()
if cache is turned off (either by feature flag or for request) or not applicable for this request (eq. only second and following calls could be cached).public Optional<org.apache.lucene.search.Query> getPermissionQuery(ApplicationUser searchUser, @Nullable Collection<Project> projects)
PermissionQueryCache
searchUser
in given projects
.getPermissionQuery
in interface PermissionQueryCache
searchUser
- Application userprojects
- List of projectsOptional
with cached permission filter or Optional.empty()
if cache is turned off (either by feature flag or for request) or not applicable for this request (eq. only second and following calls could be cached).public void disableCacheForRequest()
PermissionQueryCache
disableCacheForRequest
in interface PermissionQueryCache
Copyright © 2002-2019 Atlassian. All Rights Reserved.