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)
PermissionQueryCachesearchUser.getPermissionQuery in interface PermissionQueryCachesearchUser - 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)
PermissionQueryCachesearchUser in given projects.getPermissionQuery in interface PermissionQueryCachesearchUser - 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()
PermissionQueryCachedisableCacheForRequest in interface PermissionQueryCacheCopyright © 2002-2022 Atlassian. All Rights Reserved.