mirror of
https://github.com/zotero/zotero.git
synced 2026-09-19 00:01:31 +00:00
And add group.fromJSON(json, userID), which sets editable and filesEditable properties based on the group JSON (libraryReading, role lists, etc.) and the given user
136 lines
3.1 KiB
JavaScript
136 lines
3.1 KiB
JavaScript
"use strict";
|
|
|
|
describe("Zotero.Group", function () {
|
|
describe("#erase()", function () {
|
|
it("should unregister group", function* () {
|
|
var group = yield createGroup();
|
|
var id = group.id;
|
|
yield Zotero.DB.executeTransaction(function* () {
|
|
return group.erase()
|
|
}.bind(this));
|
|
assert.isFalse(Zotero.Groups.exists(id));
|
|
})
|
|
})
|
|
|
|
describe("#fromJSON()", function () {
|
|
it("should set permissions for owner", function* () {
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'admins',
|
|
fileEditing: 'admins'
|
|
}, 1);
|
|
assert.isTrue(group.editable);
|
|
assert.isTrue(group.filesEditable);
|
|
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'members',
|
|
fileEditing: 'members'
|
|
}, 1);
|
|
assert.isTrue(group.editable);
|
|
assert.isTrue(group.filesEditable);
|
|
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'admins',
|
|
fileEditing: 'none'
|
|
}, 1);
|
|
assert.isTrue(group.editable);
|
|
assert.isFalse(group.filesEditable);
|
|
})
|
|
|
|
it("should set permissions for admin", function* () {
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'admins',
|
|
fileEditing: 'admins',
|
|
admins: [2]
|
|
}, 2);
|
|
assert.isTrue(group.editable);
|
|
assert.isTrue(group.filesEditable);
|
|
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'members',
|
|
fileEditing: 'members',
|
|
admins: [2]
|
|
}, 2);
|
|
assert.isTrue(group.editable);
|
|
assert.isTrue(group.filesEditable);
|
|
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'admins',
|
|
fileEditing: 'none',
|
|
admins: [2]
|
|
}, 2);
|
|
assert.isTrue(group.editable);
|
|
assert.isFalse(group.filesEditable);
|
|
})
|
|
|
|
it("should set permissions for member", function* () {
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'members',
|
|
fileEditing: 'members',
|
|
admins: [2],
|
|
members: [3]
|
|
}, 3);
|
|
assert.isTrue(group.editable);
|
|
assert.isTrue(group.filesEditable);
|
|
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'admins',
|
|
fileEditing: 'admins',
|
|
admins: [2],
|
|
members: [3]
|
|
}, 3);
|
|
assert.isFalse(group.editable);
|
|
assert.isFalse(group.filesEditable);
|
|
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'admins',
|
|
fileEditing: 'members', // Shouldn't be possible
|
|
admins: [2],
|
|
members: [3]
|
|
}, 3);
|
|
assert.isFalse(group.editable);
|
|
assert.isFalse(group.filesEditable);
|
|
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'members',
|
|
fileEditing: 'none',
|
|
admins: [2],
|
|
members: [3]
|
|
}, 3);
|
|
assert.isTrue(group.editable);
|
|
assert.isFalse(group.filesEditable);
|
|
})
|
|
|
|
it("should set permissions for non-member", function* () {
|
|
var group = new Zotero.Group;
|
|
group.fromJSON({
|
|
owner: 1,
|
|
libraryEditing: 'members',
|
|
fileEditing: 'members',
|
|
admins: [2],
|
|
members: [3]
|
|
});
|
|
assert.isFalse(group.editable);
|
|
assert.isFalse(group.filesEditable);
|
|
})
|
|
})
|
|
})
|