diff --git a/frontend/src/metabase/selectors/metadata.js b/frontend/src/metabase/selectors/metadata.js index 5aeb843d6478795313e55f2be344eb33f6aeab59..6fb635bf33b304e20a8821c317fa857a38fbc940 100644 --- a/frontend/src/metabase/selectors/metadata.js +++ b/frontend/src/metabase/selectors/metadata.js @@ -7,6 +7,7 @@ import Table from "metabase-lib/lib/metadata/Table"; import Field from "metabase-lib/lib/metadata/Field"; import Metric from "metabase-lib/lib/metadata/Metric"; import Segment from "metabase-lib/lib/metadata/Segment"; +import { isVirtualCardId } from "metabase/lib/saved-questions/saved-questions"; import _ from "underscore"; import { getFieldValues, getRemappings } from "metabase/lib/query/field"; @@ -93,7 +94,20 @@ export const getMetadata = createSelector( meta.metrics = copyObjects(meta, metrics, instantiateMetric); // database - hydrateList(meta.databases, "tables", meta.tables); + hydrate(meta.databases, "tables", database => { + if (database.tables?.length > 0) { + return database.tables + .map(tableId => meta.table(tableId)) + .filter(table => table != null); + } + + return Object.values(meta.tables).filter( + table => + !isVirtualCardId(table.id) && + table.schema && + table.db_id === database.id, + ); + }); // schema hydrate(meta.schemas, "database", s => meta.database(s.database)); // table @@ -149,7 +163,10 @@ export const getMetadata = createSelector( hydrate(meta.fields, "values", f => getFieldValues(f)); hydrate(meta.fields, "remapping", f => new Map(getRemappings(f))); - + console.log(">>>>>>>>>>>"); + console.log(">>>databases", meta.databases); + console.log(">>>schemas", meta.schemas); + console.log(">>>tables", meta.tables); return meta; }, ); diff --git a/frontend/test/metabase/scenarios/permissions/reproductions/20436-incorrect-display-of-database-permissions-level.cy.spec.js b/frontend/test/metabase/scenarios/permissions/reproductions/20436-incorrect-display-of-database-permissions-level.cy.spec.js index ed2cf050375120d9f1ee70d314db57be27d368a0..2ad0ca3fba850b94ea7703eee487fc58d5faed53 100644 --- a/frontend/test/metabase/scenarios/permissions/reproductions/20436-incorrect-display-of-database-permissions-level.cy.spec.js +++ b/frontend/test/metabase/scenarios/permissions/reproductions/20436-incorrect-display-of-database-permissions-level.cy.spec.js @@ -5,7 +5,7 @@ const { ALL_USERS_GROUP } = USER_GROUPS; const url = `/admin/permissions/data/group/${ALL_USERS_GROUP}`; -describe.skip("issue 20436", () => { +describe("issue 20436", () => { beforeEach(() => { cy.intercept("PUT", "/api/permissions/graph").as("updatePermissions");