diff --git a/frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx b/frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx index 4b355a105011e306c8f9e8b461e63a90c1902345..e6b2923707c743d5ea8553f445c58900fe393693 100644 --- a/frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx +++ b/frontend/src/metabase/admin/permissions/components/PermissionsConfirm.jsx @@ -13,13 +13,14 @@ const DatabaseName = ({ database }) => ( ); const TableAccessChange = ({ tables, verb, color }) => { + const tableEntries = Object.entries(tables); return ( <span> {verb} <Tooltip tooltip={ <div className="p1"> - {Object.entries(tables).map(([id, table]) => ( + {tableEntries.map(([id, table]) => ( <div key={id}>{table.name}</div> ))} </div> @@ -29,7 +30,7 @@ const TableAccessChange = ({ tables, verb, color }) => { <span className={color}> {" " + (n => ngettext(msgid`${n} table`, `${n} tables`, n))( - tables.length, + tableEntries.length, )} </span> </span> @@ -40,9 +41,9 @@ const TableAccessChange = ({ tables, verb, color }) => { const PermissionsConfirm = ({ diff }) => ( <div> - {Object.values(diff.groups).map(group => - Object.values(group.databases).map(database => ( - <div key={database.id}> + {Object.values(diff.groups).map((group, groupIndex) => + Object.values(group.databases).map((database, databaseIndex) => ( + <div key={`${groupIndex}:${databaseIndex}`}> {(database.grantedTables || database.revokedTables) && ( <div> <GroupName group={group} />