Class ThreadLocalTenantGate
- java.lang.Object
-
- com.atlassian.confluence.impl.tenant.ThreadLocalTenantGate
-
public abstract class ThreadLocalTenantGate extends Object
A wrapper around a thread-local flag which indicates if the current thread has a permit to access tenanted resources regardless of the state of theTenantRegistry
.- Since:
- 7.5
-
-
Constructor Summary
Constructors Constructor Description ThreadLocalTenantGate()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
hasTenantPermit()
static <T> Callable<T>
withoutTenantPermit(Callable<T> callback)
Close all gates for the given closure on the current thread.static <T> Callable<T>
withTenantPermit(Callable<T> callback)
Open all gates for the given closure on the current thread.static <T> Callable<T>
wrap(boolean permitted, Callable<T> callback)
-
-
-
Method Detail
-
hasTenantPermit
public static boolean hasTenantPermit()
-
withTenantPermit
public static <T> Callable<T> withTenantPermit(Callable<T> callback)
Open all gates for the given closure on the current thread.This only makes sense in a pre-tenanted state, e.g. during setup allow code to prepare the database before it's made available to a broader audience.
- Parameters:
callback
- the function allowed to pass through the gate- Returns:
- the permitted function
-
withoutTenantPermit
public static <T> Callable<T> withoutTenantPermit(Callable<T> callback)
Close all gates for the given closure on the current thread.This only makes sense in a pre-tenanted state, if you want to ensure that the given code can not access tenanted resources even though an outer closure might have granted that access, e.g. loading
DefaultPluginManager.earlyStartup()
plugins which should not be able to eagerly access tenanted resources.- Parameters:
callback
- the function allowed to pass through the gate- Returns:
- the permitted function
-
-