diff --git a/src/routes/groups.js b/src/routes/groups.js index 56a73d764..de126ab90 100644 --- a/src/routes/groups.js +++ b/src/routes/groups.js @@ -61,8 +61,6 @@ async function setName(req, res, next) { async function setMembers(req, res, next) { assert.strictEqual(typeof req.resource, 'object'); - if (req.resource.source === 'ldap') return next(new HttpError(409, 'members of an external group cannot be set')); - if (!req.body.userIds) return next(new HttpError(404, 'missing or invalid userIds fields')); if (!Array.isArray(req.body.userIds)) return next(new HttpError(404, 'userIds must be an array')); if (req.body.userIds.some((u) => typeof u !== 'string')) return next(new HttpError(400, 'userIds array must contain strings')); diff --git a/src/test/groups-test.js b/src/test/groups-test.js index 98f07e43e..6280d242b 100644 --- a/src/test/groups-test.js +++ b/src/test/groups-test.js @@ -204,10 +204,22 @@ describe('Groups', function () { groupObject = await groups.get(groupObject.id); expect(groupObject.name).to.be('kootam2'); }); + }); - it('cannot change ldap group name', async function () { - const result = await groups.add({ name: 'ldap-kootam', source: 'ldap' }); - const [error] = await safe(groups.setName(result, 'ldap-kootam2')); + describe('ldap group', function () { + let ldapGroup; + + before(async function () { + ldapGroup = await groups.add({ name: 'ldap-kootam', source: 'ldap' }); + }); + + it('cannot change name', async function () { + const [error] = await safe(groups.setName(ldapGroup, 'ldap-kootam2')); + expect(error.reason).to.be(BoxError.BAD_STATE); + }); + + it('cannot set members', async function () { + const [error] = await safe(groups.setMembers(ldapGroup, [ admin.id ], { skipSourceSkip: false })); expect(error.reason).to.be(BoxError.BAD_STATE); }); });