fix: Restore edit permission for workspace admins in non-private collections, closes #5300
This commit is contained in:
@@ -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", () => {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user