Skip to content
Snippets Groups Projects
Unverified Commit 672ef98c authored by Alexander Lesnenko's avatar Alexander Lesnenko Committed by GitHub
Browse files

propagate permissions fix (#21571)

parent 85e13418
No related branches found
No related tags found
No related merge requests found
...@@ -7,6 +7,7 @@ import Table from "metabase-lib/lib/metadata/Table"; ...@@ -7,6 +7,7 @@ import Table from "metabase-lib/lib/metadata/Table";
import Field from "metabase-lib/lib/metadata/Field"; import Field from "metabase-lib/lib/metadata/Field";
import Metric from "metabase-lib/lib/metadata/Metric"; import Metric from "metabase-lib/lib/metadata/Metric";
import Segment from "metabase-lib/lib/metadata/Segment"; import Segment from "metabase-lib/lib/metadata/Segment";
import { isVirtualCardId } from "metabase/lib/saved-questions/saved-questions";
import _ from "underscore"; import _ from "underscore";
import { getFieldValues, getRemappings } from "metabase/lib/query/field"; import { getFieldValues, getRemappings } from "metabase/lib/query/field";
...@@ -93,7 +94,20 @@ export const getMetadata = createSelector( ...@@ -93,7 +94,20 @@ export const getMetadata = createSelector(
meta.metrics = copyObjects(meta, metrics, instantiateMetric); meta.metrics = copyObjects(meta, metrics, instantiateMetric);
// database // 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 // schema
hydrate(meta.schemas, "database", s => meta.database(s.database)); hydrate(meta.schemas, "database", s => meta.database(s.database));
// table // table
...@@ -149,7 +163,10 @@ export const getMetadata = createSelector( ...@@ -149,7 +163,10 @@ export const getMetadata = createSelector(
hydrate(meta.fields, "values", f => getFieldValues(f)); hydrate(meta.fields, "values", f => getFieldValues(f));
hydrate(meta.fields, "remapping", f => new Map(getRemappings(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; return meta;
}, },
); );
......
...@@ -5,7 +5,7 @@ const { ALL_USERS_GROUP } = USER_GROUPS; ...@@ -5,7 +5,7 @@ const { ALL_USERS_GROUP } = USER_GROUPS;
const url = `/admin/permissions/data/group/${ALL_USERS_GROUP}`; const url = `/admin/permissions/data/group/${ALL_USERS_GROUP}`;
describe.skip("issue 20436", () => { describe("issue 20436", () => {
beforeEach(() => { beforeEach(() => {
cy.intercept("PUT", "/api/permissions/graph").as("updatePermissions"); cy.intercept("PUT", "/api/permissions/graph").as("updatePermissions");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment