Do not show fields from join tables that user does not have permission to (e.g., that aren't in meta data)

This commit is contained in:
2023-05-08 11:53:49 -05:00
parent fadde8d469
commit 163b79a889

View File

@ -97,25 +97,28 @@ export default class DataGridUtils
const columns = [] as GridColDef[]; const columns = [] as GridColDef[];
this.addColumnsForTable(tableMetaData, linkBase, columns, columnSort, null, null); this.addColumnsForTable(tableMetaData, linkBase, columns, columnSort, null, null);
if(tableMetaData.exposedJoins) if(metaData)
{ {
for (let i = 0; i < tableMetaData.exposedJoins.length; i++) if(tableMetaData.exposedJoins)
{ {
const join = tableMetaData.exposedJoins[i]; for (let i = 0; i < tableMetaData.exposedJoins.length; i++)
let joinLinkBase = null;
if(metaData)
{ {
joinLinkBase = metaData.getTablePath(join.joinTable); const join = tableMetaData.exposedJoins[i];
if(joinLinkBase) let joinTableName = join.joinTable.name;
if(metaData.tables.has(joinTableName) && metaData.tables.get(joinTableName).readPermission)
{ {
joinLinkBase += joinLinkBase.endsWith("/") ? "" : "/"; let joinLinkBase = null;
} joinLinkBase = metaData.getTablePath(join.joinTable);
} if(joinLinkBase)
{
joinLinkBase += joinLinkBase.endsWith("/") ? "" : "/";
}
if(join?.joinTable?.fields?.values()) if(join?.joinTable?.fields?.values())
{ {
this.addColumnsForTable(join.joinTable, joinLinkBase, columns, columnSort, join.joinTable.name + ".", join.label + ": "); this.addColumnsForTable(join.joinTable, joinLinkBase, columns, columnSort, joinTableName + ".", join.label + ": ");
}
}
} }
} }
} }