public class org.apache.isis.applib.services.user.UserService extends java.lang.Object
{
public static final java.lang.String NOBODY;
private final javax.inject.Provider iInteractionLayerTrackerProvider;
private final java.util.List impersonatedUserHolders;
public java.util.Optional currentUser()
{
javax.inject.Provider v;
java.util.function.Function v;
java.util.Optional v, v, v;
java.lang.Object v;
org.apache.isis.applib.services.user.UserService v;
boolean v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = specialinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional impersonatedUserIfAny()>();
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = v.<org.apache.isis.applib.services.user.UserService: javax.inject.Provider iInteractionLayerTrackerProvider>;
v = interfaceinvoke v.<javax.inject.Provider: java.lang.Object get()>();
v = interfaceinvoke v.<org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker: java.util.Optional currentInteractionContext()>();
v = staticinvoke <org.apache.isis.applib.services.user.UserService$getUser__215: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
label:
return v;
}
public boolean isCurrentUserWithSystemPrivileges()
{
java.lang.Boolean v;
java.util.Optional v, v;
java.lang.Object v;
java.util.function.Function v;
org.apache.isis.applib.services.user.UserService v;
boolean v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = virtualinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional currentUser()>();
v = staticinvoke <org.apache.isis.applib.services.user.UserService$isSystem__216: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
return v;
}
public org.apache.isis.applib.services.user.UserMemento getUser()
{
java.util.Optional v;
java.lang.Object v;
org.apache.isis.applib.services.user.UserService v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = virtualinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional currentUser()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
return v;
}
public org.apache.isis.applib.services.user.UserMemento currentUserElseFail()
{
java.util.Optional v;
java.lang.Object v;
java.util.function.Supplier v;
org.apache.isis.applib.services.user.UserService v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = virtualinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional currentUser()>();
v = staticinvoke <org.apache.isis.applib.services.user.UserService$lambda_currentUserElseFail_0__217: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
return v;
}
public java.util.Optional currentUserName()
{
java.util.Optional v, v;
java.util.function.Function v;
org.apache.isis.applib.services.user.UserService v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = virtualinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional currentUser()>();
v = staticinvoke <org.apache.isis.applib.services.user.UserService$getName__218: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
return v;
}
public java.lang.String currentUserNameElseNobody()
{
java.util.Optional v;
java.lang.Object v;
org.apache.isis.applib.services.user.UserService v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = virtualinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional currentUserName()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>("__isis_nobody");
return v;
}
public boolean isImpersonating()
{
java.util.Optional v;
org.apache.isis.applib.services.user.UserService v;
boolean v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = specialinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional impersonatedUserIfAny()>();
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
return v;
}
public boolean supportsImpersonation()
{
java.util.Optional v;
org.apache.isis.applib.services.user.UserService v;
boolean v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = specialinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional impersonatingHolder()>();
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
return v;
}
private java.util.Optional impersonatingHolder()
{
java.util.Iterator v;
java.lang.Exception v;
java.util.List v;
java.util.Optional v, v;
java.lang.Object v;
org.apache.isis.applib.services.user.UserService v;
boolean v, v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = v.<org.apache.isis.applib.services.user.UserService: java.util.List impersonatedUserHolders>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
v = interfaceinvoke v.<org.apache.isis.applib.services.user.ImpersonatedUserHolder: boolean supportsImpersonation()>();
if v == 0 goto label;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
goto label;
label:
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
return v;
catch java.lang.Exception from label to label with label;
}
public void impersonateUser(java.lang.String, java.util.List, java.lang.String)
{
java.util.function.Consumer v;
java.util.List v;
java.util.Optional v;
java.lang.String v, v;
org.apache.isis.applib.services.user.UserService v;
v := @this: org.apache.isis.applib.services.user.UserService;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v := @parameter: java.lang.String;
v = specialinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional impersonatingHolder()>();
v = staticinvoke <org.apache.isis.applib.services.user.UserService$lambda_impersonateUser_1__219: java.util.function.Consumer bootstrap$(java.lang.String,java.util.List,java.lang.String)>(v, v, v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
return;
}
public void stopImpersonating()
{
java.util.function.Consumer v;
java.util.Optional v;
org.apache.isis.applib.services.user.UserService v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = specialinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional impersonatingHolder()>();
v = staticinvoke <org.apache.isis.applib.services.user.UserService$clearUserMemento__220: java.util.function.Consumer bootstrap$()>();
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
return;
}
private java.util.Optional impersonatedUserIfAny()
{
java.util.Optional v, v;
java.util.function.Function v;
org.apache.isis.applib.services.user.UserService v;
v := @this: org.apache.isis.applib.services.user.UserService;
v = specialinvoke v.<org.apache.isis.applib.services.user.UserService: java.util.Optional impersonatingHolder()>();
v = staticinvoke <org.apache.isis.applib.services.user.UserService$getUserMemento__221: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional flatMap(java.util.function.Function)>(v);
return v;
}
public void <init>(javax.inject.Provider, java.util.List)
{
java.util.List v;
javax.inject.Provider v;
org.apache.isis.applib.services.user.UserService v;
v := @this: org.apache.isis.applib.services.user.UserService;
v := @parameter: javax.inject.Provider;
v := @parameter: java.util.List;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.isis.applib.services.user.UserService: javax.inject.Provider iInteractionLayerTrackerProvider> = v;
v.<org.apache.isis.applib.services.user.UserService: java.util.List impersonatedUserHolders> = v;
return;
}
}