fix: Restore edit permission for workspace admins in non-private collections, closes #5300

This commit is contained in:
Tom Moor
2023-05-04 21:04:43 -04:00
parent aebd626954
commit 0504e91aa6
2 changed files with 24 additions and 0 deletions

View File

@@ -32,6 +32,23 @@ describe("admin", () => {
expect(abilities.read).toEqual(true);
expect(abilities.update).toEqual(true);
});
it("should allow updating documents in view only collection", async () => {
const team = await buildTeam();
const user = await buildAdmin({
teamId: team.id,
});
const collection = await buildCollection({
teamId: team.id,
permission: CollectionPermission.Read,
});
const abilities = serialize(user, collection);
expect(abilities.readDocument).toEqual(true);
expect(abilities.createDocument).toEqual(true);
expect(abilities.share).toEqual(true);
expect(abilities.read).toEqual(true);
expect(abilities.update).toEqual(true);
});
});
describe("member", () => {

View File

@@ -75,6 +75,9 @@ allow(User, "share", Collection, (user, collection) => {
if (!collection.sharing) {
return false;
}
if (!collection.isPrivate && user.isAdmin) {
return true;
}
if (
collection.permission !== CollectionPermission.ReadWrite ||
@@ -110,6 +113,10 @@ allow(
return false;
}
if (!collection.isPrivate && user.isAdmin) {
return true;
}
if (
collection.permission !== CollectionPermission.ReadWrite ||
user.isViewer