mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
CE-1123 Add valuesForFrontend to session; pass them to frontend in manageSesssion javalin endpoint
This commit is contained in:
@ -28,6 +28,7 @@ import java.util.Collection;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -52,9 +53,16 @@ public class QSession implements Serializable
|
|||||||
private Map<String, List<Serializable>> securityKeyValues;
|
private Map<String, List<Serializable>> securityKeyValues;
|
||||||
private Map<String, Serializable> backendVariants;
|
private Map<String, Serializable> backendVariants;
|
||||||
|
|
||||||
// implementation-specific custom values
|
///////////////////////////////////////////
|
||||||
|
// implementation-specific custom values //
|
||||||
|
///////////////////////////////////////////
|
||||||
private Map<String, String> values;
|
private Map<String, String> values;
|
||||||
|
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
// values meant to be passed to a frontend //
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
private Map<String, Serializable> valuesForFrontend;
|
||||||
|
|
||||||
public static final String VALUE_KEY_USER_TIMEZONE = "UserTimezone";
|
public static final String VALUE_KEY_USER_TIMEZONE = "UserTimezone";
|
||||||
public static final String VALUE_KEY_USER_TIMEZONE_OFFSET_MINUTES = "UserTimezoneOffsetMinutes";
|
public static final String VALUE_KEY_USER_TIMEZONE_OFFSET_MINUTES = "UserTimezoneOffsetMinutes";
|
||||||
|
|
||||||
@ -500,4 +508,49 @@ public class QSession implements Serializable
|
|||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for valuesForFrontend
|
||||||
|
*******************************************************************************/
|
||||||
|
public Map<String, Serializable> getValuesForFrontend()
|
||||||
|
{
|
||||||
|
return (this.valuesForFrontend);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Setter for valuesForFrontend
|
||||||
|
*******************************************************************************/
|
||||||
|
public void setValuesForFrontend(Map<String, Serializable> valuesForFrontend)
|
||||||
|
{
|
||||||
|
this.valuesForFrontend = valuesForFrontend;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Fluent setter for valuesForFrontend
|
||||||
|
*******************************************************************************/
|
||||||
|
public QSession withValuesForFrontend(Map<String, Serializable> valuesForFrontend)
|
||||||
|
{
|
||||||
|
this.valuesForFrontend = valuesForFrontend;
|
||||||
|
return (this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Fluent setter for a single valuesForFrontend
|
||||||
|
*******************************************************************************/
|
||||||
|
public QSession withValueForFrontend(String key, Serializable value)
|
||||||
|
{
|
||||||
|
if(this.valuesForFrontend == null)
|
||||||
|
{
|
||||||
|
this.valuesForFrontend = new LinkedHashMap<>();
|
||||||
|
}
|
||||||
|
this.valuesForFrontend.put(key, value);
|
||||||
|
return (this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,7 @@ import java.time.Instant;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -427,7 +428,17 @@ public class QJavalinImplementation
|
|||||||
QSession session = authenticationModule.createSession(qInstance, authContext);
|
QSession session = authenticationModule.createSession(qInstance, authContext);
|
||||||
|
|
||||||
context.cookie(SESSION_UUID_COOKIE_NAME, session.getUuid(), SESSION_COOKIE_AGE);
|
context.cookie(SESSION_UUID_COOKIE_NAME, session.getUuid(), SESSION_COOKIE_AGE);
|
||||||
context.result(JsonUtils.toJson(MapBuilder.of("uuid", session.getUuid())));
|
|
||||||
|
Map<String, Serializable> resultMap = new HashMap<>();
|
||||||
|
resultMap.put("uuid", session.getUuid());
|
||||||
|
|
||||||
|
if(session.getValuesForFrontend() != null)
|
||||||
|
{
|
||||||
|
LinkedHashMap<String, Serializable> valuesForFrontend = new LinkedHashMap<>(session.getValuesForFrontend());
|
||||||
|
resultMap.put("values", valuesForFrontend);
|
||||||
|
}
|
||||||
|
|
||||||
|
context.result(JsonUtils.toJson(resultMap));
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user