Use sessino from context, not input

This commit is contained in:
2023-03-01 08:36:03 -06:00
parent da17145f66
commit dd28c95fc0
2 changed files with 22 additions and 18 deletions

View File

@ -436,7 +436,7 @@ public class PermissionsHelper
} }
} }
if(hasPermission(actionInput.getSession(), permissionBaseName, effectivePermissionSubType)) if(hasPermission(QContext.getQSession(), permissionBaseName, effectivePermissionSubType))
{ {
return (PermissionCheckResult.ALLOW); return (PermissionCheckResult.ALLOW);
} }
@ -534,9 +534,9 @@ public class PermissionsHelper
return; return;
} }
if(!hasPermission(actionInput.getSession(), permissionBaseName, effectivePermissionSubType)) if(!hasPermission(QContext.getQSession(), permissionBaseName, effectivePermissionSubType))
{ {
// LOG.debug("Throwing permission denied for: " + getPermissionName(permissionBaseName, effectivePermissionSubType) + " for " + actionInput.getSession().getUser()); // LOG.debug("Throwing permission denied for: " + getPermissionName(permissionBaseName, effectivePermissionSubType) + " for " + QContext.getQSession().getUser());
throw (new QPermissionDeniedException("Permission denied.")); throw (new QPermissionDeniedException("Permission denied."));
} }
} }

View File

@ -34,6 +34,7 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import com.kingsrook.qqq.backend.core.actions.customizers.QCodeLoader; import com.kingsrook.qqq.backend.core.actions.customizers.QCodeLoader;
import com.kingsrook.qqq.backend.core.actions.tables.QueryAction; import com.kingsrook.qqq.backend.core.actions.tables.QueryAction;
import com.kingsrook.qqq.backend.core.context.QContext;
import com.kingsrook.qqq.backend.core.exceptions.QValueException; import com.kingsrook.qqq.backend.core.exceptions.QValueException;
import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.logging.QLogger;
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QCriteriaOperator; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QCriteriaOperator;
@ -67,28 +68,31 @@ public class QPossibleValueTranslator
{ {
private static final QLogger LOG = QLogger.getLogger(QPossibleValueTranslator.class); private static final QLogger LOG = QLogger.getLogger(QPossibleValueTranslator.class);
private final QInstance qInstance;
private final QSession session;
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
// top-level keys are pvsNames (not table names) // // top-level keys are pvsNames (not table names) //
// 2nd-level keys are pkey values from the PVS table // // 2nd-level keys are pkey values from the PVS table //
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
private Map<String, Map<Serializable, String>> possibleValueCache; private Map<String, Map<Serializable, String>> possibleValueCache = new HashMap<>();
// todo not commit - remove instance & session - use Context // todo not commit - remove instance & session - use Context
/*******************************************************************************
** Constructor
**
*******************************************************************************/
public QPossibleValueTranslator()
{
}
/******************************************************************************* /*******************************************************************************
** **
*******************************************************************************/ *******************************************************************************/
public QPossibleValueTranslator(QInstance qInstance, QSession session) public QPossibleValueTranslator(QInstance qInstance, QSession session)
{ {
this.qInstance = qInstance;
this.session = session;
this.possibleValueCache = new HashMap<>();
} }
@ -141,7 +145,7 @@ public class QPossibleValueTranslator
{ {
try try
{ {
QTableMetaData joinTable = qInstance.getTable(queryJoin.getJoinTable()); QTableMetaData joinTable = QContext.getQInstance().getTable(queryJoin.getJoinTable());
for(QFieldMetaData field : joinTable.getFields().values()) for(QFieldMetaData field : joinTable.getFields().values())
{ {
String joinFieldName = Objects.requireNonNullElse(queryJoin.getAlias(), joinTable.getName()) + "." + field.getName(); String joinFieldName = Objects.requireNonNullElse(queryJoin.getAlias(), joinTable.getName()) + "." + field.getName();
@ -152,7 +156,7 @@ public class QPossibleValueTranslator
/////////////////////////////////////////////// ///////////////////////////////////////////////
// avoid circling-back upon the source table // // avoid circling-back upon the source table //
/////////////////////////////////////////////// ///////////////////////////////////////////////
QPossibleValueSource possibleValueSource = qInstance.getPossibleValueSource(field.getPossibleValueSourceName()); QPossibleValueSource possibleValueSource = QContext.getQInstance().getPossibleValueSource(field.getPossibleValueSourceName());
if(QPossibleValueSourceType.TABLE.equals(possibleValueSource.getType()) && table.getName().equals(possibleValueSource.getTableName())) if(QPossibleValueSourceType.TABLE.equals(possibleValueSource.getType()) && table.getName().equals(possibleValueSource.getTableName()))
{ {
continue; continue;
@ -212,7 +216,7 @@ public class QPossibleValueTranslator
*******************************************************************************/ *******************************************************************************/
public String translatePossibleValue(QFieldMetaData field, Serializable value) public String translatePossibleValue(QFieldMetaData field, Serializable value)
{ {
QPossibleValueSource possibleValueSource = qInstance.getPossibleValueSource(field.getPossibleValueSourceName()); QPossibleValueSource possibleValueSource = QContext.getQInstance().getPossibleValueSource(field.getPossibleValueSourceName());
if(possibleValueSource == null) if(possibleValueSource == null)
{ {
LOG.error("Missing possible value source named [" + field.getPossibleValueSourceName() + "] when formatting value for field [" + field.getName() + "]"); LOG.error("Missing possible value source named [" + field.getPossibleValueSourceName() + "] when formatting value for field [" + field.getName() + "]");
@ -414,7 +418,7 @@ public class QPossibleValueTranslator
if(queryJoin.getSelect()) if(queryJoin.getSelect())
{ {
String aliasOrTableName = Objects.requireNonNullElse(queryJoin.getAlias(), queryJoin.getJoinTable()); String aliasOrTableName = Objects.requireNonNullElse(queryJoin.getAlias(), queryJoin.getJoinTable());
primePvsCacheTableListingHashLoader(qInstance.getTable(queryJoin.getJoinTable()), fieldsByPvsTable, pvsesByTable, aliasOrTableName + ".", queryJoin.getJoinTable(), limitedToFieldNames); primePvsCacheTableListingHashLoader(QContext.getQInstance().getTable(queryJoin.getJoinTable()), fieldsByPvsTable, pvsesByTable, aliasOrTableName + ".", queryJoin.getJoinTable(), limitedToFieldNames);
} }
} }
@ -474,7 +478,7 @@ public class QPossibleValueTranslator
{ {
for(QFieldMetaData field : table.getFields().values()) for(QFieldMetaData field : table.getFields().values())
{ {
QPossibleValueSource possibleValueSource = qInstance.getPossibleValueSource(field.getPossibleValueSourceName()); QPossibleValueSource possibleValueSource = QContext.getQInstance().getPossibleValueSource(field.getPossibleValueSourceName());
if(possibleValueSource != null && possibleValueSource.getType().equals(QPossibleValueSourceType.TABLE)) if(possibleValueSource != null && possibleValueSource.getType().equals(QPossibleValueSourceType.TABLE))
{ {
if(limitedToFieldNames != null && !limitedToFieldNames.contains(fieldNamePrefix + field.getName())) if(limitedToFieldNames != null && !limitedToFieldNames.contains(fieldNamePrefix + field.getName()))
@ -510,7 +514,7 @@ public class QPossibleValueTranslator
try try
{ {
String primaryKeyField = qInstance.getTable(tableName).getPrimaryKeyField(); String primaryKeyField = QContext.getQInstance().getTable(tableName).getPrimaryKeyField();
for(List<Serializable> page : CollectionUtils.getPages(values, 1000)) for(List<Serializable> page : CollectionUtils.getPages(values, 1000))
{ {
@ -531,7 +535,7 @@ public class QPossibleValueTranslator
{ {
if(possibleValueSource.getType().equals(QPossibleValueSourceType.TABLE)) if(possibleValueSource.getType().equals(QPossibleValueSourceType.TABLE))
{ {
QTableMetaData table = qInstance.getTable(possibleValueSource.getTableName()); QTableMetaData table = QContext.getQInstance().getTable(possibleValueSource.getTableName());
for(String recordLabelField : CollectionUtils.nonNullList(table.getRecordLabelFields())) for(String recordLabelField : CollectionUtils.nonNullList(table.getRecordLabelFields()))
{ {
QFieldMetaData field = table.getField(recordLabelField); QFieldMetaData field = table.getField(recordLabelField);