Skip to content

Commit

Permalink
fix: make sure existing modified permissions are not overwritten (#424)
Browse files Browse the repository at this point in the history
* fix: make sure existing modified permissions are not overwritten

* chore: add changeset
  • Loading branch information
onehassan authored Nov 13, 2023
1 parent ffba7d8 commit 003cfd6
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 4 deletions.
5 changes: 5 additions & 0 deletions .changeset/brown-shoes-pump.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'hasura-auth': patch
---

fix: make sure existing modified permissions are not overwritten
26 changes: 22 additions & 4 deletions src/utils/hasura-metadata/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,16 +115,34 @@ export const patchTableObject = (
}

if (select_permissions) {
const mergedSelectPermissions = [...(existingTable.select_permissions ?? []), ...select_permissions];
const mergedSelectPermissions = [
...select_permissions,
...(existingTable.select_permissions ?? []),
];

existingTable.select_permissions = [
...new Map(mergedSelectPermissions.map((permission) => [permission.role, permission])).values()
...new Map(
mergedSelectPermissions.map((permission) => [
permission.role,
permission,
])
).values(),
];
}

if (delete_permissions) {
const mergedDeletePermissions = [...(existingTable.delete_permissions ?? []), ...delete_permissions];
const mergedDeletePermissions = [
...delete_permissions,
...(existingTable.delete_permissions ?? []),
];

existingTable.delete_permissions = [
...new Map(mergedDeletePermissions.map((permission) => [permission.role, permission])).values()
...new Map(
mergedDeletePermissions.map((permission) => [
permission.role,
permission,
])
).values(),
];
}

Expand Down

0 comments on commit 003cfd6

Please sign in to comment.