public class DefaultPermissionFilterCache extends Object implements PermissionFilterCache
getPermissionQueryFilter
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 |
---|
DefaultPermissionFilterCache(PermissionsFilterGenerator permissionsFilterGenerator) |
Modifier and Type | Method and Description |
---|---|
void |
disableCacheForRequest()
Disables cache usage for this http request.
|
Optional<org.apache.lucene.search.Filter> |
getPermissionQueryFilter(ApplicationUser searchUser)
Gets permission cache for passed
searchUser . |
Optional<org.apache.lucene.search.Filter> |
getPermissionQueryFilter(ApplicationUser searchUser,
Collection<Project> projects)
Gets permission cache for passed
searchUser in given projects . |
public DefaultPermissionFilterCache(PermissionsFilterGenerator permissionsFilterGenerator)
public Optional<org.apache.lucene.search.Filter> getPermissionQueryFilter(ApplicationUser searchUser)
PermissionFilterCache
searchUser
.getPermissionQueryFilter
in interface PermissionFilterCache
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.Filter> getPermissionQueryFilter(ApplicationUser searchUser, @Nullable Collection<Project> projects)
PermissionFilterCache
searchUser
in given projects
.getPermissionQueryFilter
in interface PermissionFilterCache
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()
PermissionFilterCache
disableCacheForRequest
in interface PermissionFilterCache
Copyright © 2002-2020 Atlassian. All Rights Reserved.