diff --git a/console/src/components/Services/Data/TablePermissions/PermissionBuilder/PermissionBuilder.js b/console/src/components/Services/Data/TablePermissions/PermissionBuilder/PermissionBuilder.js index 0621dab9eddf0..32c7f2d82d94a 100644 --- a/console/src/components/Services/Data/TablePermissions/PermissionBuilder/PermissionBuilder.js +++ b/console/src/components/Services/Data/TablePermissions/PermissionBuilder/PermissionBuilder.js @@ -15,6 +15,8 @@ import { boolColumnOperators, } from './utils'; +import { getTableName } from '../../utils'; + import QueryBuilderJson from '../../../../QueryBuilderJson/QueryBuilderJson'; const styles = require('./Styles.scss'); @@ -406,7 +408,8 @@ class PermissionBuilder extends React.Component { let tableColumns = []; let tableRelationships = []; if (table) { - const tableSchema = tableSchemas[table]; + // In case of a manual relationship the right table is an object for a different schema + const tableSchema = tableSchemas[getTableName(table)]; tableColumns = getTableColumnNames(tableSchema); tableRelationships = getTableRelationshipNames(tableSchema); } diff --git a/console/src/components/Services/Data/TableRelationships/Actions.js b/console/src/components/Services/Data/TableRelationships/Actions.js index 57bcc568a94c6..924b152726b49 100644 --- a/console/src/components/Services/Data/TableRelationships/Actions.js +++ b/console/src/components/Services/Data/TableRelationships/Actions.js @@ -117,7 +117,7 @@ const generateRelationshipsQuery = ( } else { const columnReducer = (accumulator, val) => ({ ...accumulator, - [val.rcol]: val.lcol, + [val.lcol]: val.rcol, }); upQuery.args.using = { manual_configuration: { diff --git a/console/src/components/Services/Data/TableRelationships/autoRelations.js b/console/src/components/Services/Data/TableRelationships/autoRelations.js index e2a60135e7d87..529664c4689de 100644 --- a/console/src/components/Services/Data/TableRelationships/autoRelations.js +++ b/console/src/components/Services/Data/TableRelationships/autoRelations.js @@ -1,12 +1,4 @@ -const getTableName = t => { - const typ = typeof t; - if (typ === 'string') { - return t; - } else if (typ === 'object') { - return 'name' in t ? t.name : ''; - } - return ''; -}; +import { getTableName } from '../utils'; const suggestedRelationshipsRaw = (tableName, allSchemas) => { const objRels = []; diff --git a/console/src/components/Services/Data/utils.js b/console/src/components/Services/Data/utils.js index 0ab0553da89ce..51bde3f5f2990 100644 --- a/console/src/components/Services/Data/utils.js +++ b/console/src/components/Services/Data/utils.js @@ -119,6 +119,16 @@ const escapeRegExp = string => { return string.replace(/([.*+?^${}()|[\]\\])/g, '\\$1'); }; +const getTableName = t => { + const typ = typeof t; + if (typ === 'string') { + return t; + } else if (typ === 'object') { + return 'name' in t ? t.name : ''; + } + return ''; +}; + export { ordinalColSort, findTableFromRel, @@ -126,4 +136,5 @@ export { getEdForm, getIngForm, escapeRegExp, + getTableName, };