Fixup ldap group search tests
This commit is contained in:
@@ -221,117 +221,78 @@ describe('Ldap', function () {
|
||||
mockApp.accessRestriction = null;
|
||||
|
||||
const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: 'objectclass=group' });
|
||||
expect(entries.length).to.equal(4);
|
||||
|
||||
// ensure order for testability
|
||||
entries.sort(function (a, b) { return a.cn < b.cn; });
|
||||
|
||||
expect(entries[0].cn).to.equal('users');
|
||||
expect(entries[0].memberuid.length).to.equal(2);
|
||||
expect(entries[0].memberuid).to.contain(admin.id);
|
||||
expect(entries[0].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[1].cn).to.equal('admins');
|
||||
// if only one entry, the array becomes a string :-/
|
||||
expect(entries[1].memberuid).to.equal(admin.id);
|
||||
|
||||
expect(entries[2].cn).to.equal('ldap-test-1');
|
||||
expect(entries[2].memberuid.length).to.equal(2);
|
||||
expect(entries[2].memberuid).to.contain(admin.id);
|
||||
expect(entries[2].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[3].cn).to.equal('ldap-test-2');
|
||||
expect(entries[3].memberuid).to.equal(admin.id);
|
||||
});
|
||||
|
||||
it ('succeeds with cn wildcard filter', async function () {
|
||||
const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(cn=*)' });
|
||||
expect(entries.length).to.equal(4);
|
||||
|
||||
// ensure order for testability
|
||||
entries.sort(function (a, b) { return a.cn < b.cn; });
|
||||
|
||||
expect(entries[0].cn).to.equal('users');
|
||||
expect(entries[0].memberuid.length).to.equal(2);
|
||||
expect(entries[0].memberuid).to.contain(admin.id);
|
||||
expect(entries[0].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[1].cn).to.equal('admins');
|
||||
// if only one entry, the array becomes a string :-/
|
||||
expect(entries[1].memberuid).to.equal(admin.id);
|
||||
|
||||
expect(entries[2].cn).to.equal('ldap-test-1');
|
||||
expect(entries[2].memberuid.length).to.equal(2);
|
||||
expect(entries[2].memberuid).to.contain(admin.id);
|
||||
expect(entries[2].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[3].cn).to.equal('ldap-test-2');
|
||||
expect(entries[3].memberuid).to.equal(admin.id);
|
||||
});
|
||||
|
||||
it('succeeds with memberuid filter', async function () {
|
||||
const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(memberuid=' + user.id + ')' });
|
||||
expect(entries.length).to.equal(2);
|
||||
|
||||
// ensure order for testability
|
||||
entries.sort(function (a, b) { return a.cn < b.cn; });
|
||||
|
||||
expect(entries[0].cn).to.equal('users');
|
||||
expect(entries[0].cn).to.equal('ldap-test-1');
|
||||
expect(entries[0].memberuid.length).to.equal(2);
|
||||
expect(entries[0].memberuid).to.contain(admin.id);
|
||||
expect(entries[0].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[1].cn).to.equal('ldap-test-1');
|
||||
expect(entries[1].memberuid.length).to.equal(2);
|
||||
expect(entries[1].memberuid).to.contain(admin.id);
|
||||
expect(entries[1].memberuid).to.contain(user.id);
|
||||
expect(entries[1].cn).to.equal('ldap-test-2');
|
||||
expect(entries[1].memberuid).to.equal(admin.id);
|
||||
});
|
||||
|
||||
it ('succeeds with cn wildcard filter', async function () {
|
||||
const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(cn=*)' });
|
||||
expect(entries.length).to.equal(2);
|
||||
|
||||
// ensure order for testability
|
||||
entries.sort(function (a, b) { return a.cn < b.cn; });
|
||||
|
||||
expect(entries[0].cn).to.equal('ldap-test-1');
|
||||
expect(entries[0].memberuid.length).to.equal(2);
|
||||
expect(entries[0].memberuid).to.contain(admin.id);
|
||||
expect(entries[0].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[1].cn).to.equal('ldap-test-2');
|
||||
expect(entries[1].memberuid).to.equal(admin.id);
|
||||
});
|
||||
|
||||
it('succeeds with memberuid filter', async function () {
|
||||
const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(memberuid=' + user.id + ')' });
|
||||
expect(entries.length).to.equal(1);
|
||||
|
||||
// ensure order for testability
|
||||
entries.sort(function (a, b) { return a.cn < b.cn; });
|
||||
|
||||
expect(entries[0].cn).to.equal('ldap-test-1');
|
||||
expect(entries[0].memberuid.length).to.equal(2);
|
||||
expect(entries[0].memberuid).to.contain(admin.id);
|
||||
expect(entries[0].memberuid).to.contain(user.id);
|
||||
});
|
||||
|
||||
it ('does only list groups who have access', async function () {
|
||||
mockApp.accessRestriction = { users: [], groups: [ group.id ] };
|
||||
const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(cn=*)' });
|
||||
expect(entries.length).to.equal(1);
|
||||
|
||||
// ensure order for testability
|
||||
entries.sort(function (a, b) { return a.cn < b.cn; });
|
||||
|
||||
expect(entries.length).to.equal(3);
|
||||
expect(entries[0].cn).to.equal('users');
|
||||
expect(entries[0].cn).to.equal('ldap-test-1');
|
||||
expect(entries[0].memberuid.length).to.equal(2);
|
||||
expect(entries[0].memberuid).to.contain(admin.id);
|
||||
expect(entries[0].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[1].cn).to.equal('admins');
|
||||
// if only one entry, the array becomes a string :-/
|
||||
expect(entries[1].memberuid).to.equal(admin.id);
|
||||
|
||||
expect(entries[2].cn).to.equal('ldap-test-1');
|
||||
expect(entries[2].memberuid.length).to.equal(2);
|
||||
expect(entries[2].memberuid).to.contain(admin.id);
|
||||
expect(entries[2].memberuid).to.contain(user.id);
|
||||
});
|
||||
|
||||
it ('succeeds with pagination', async function () {
|
||||
mockApp.accessRestriction = null;
|
||||
const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: 'objectclass=group', paged: true });
|
||||
expect(entries.length).to.equal(4);
|
||||
expect(entries.length).to.equal(2);
|
||||
|
||||
// ensure order for testability
|
||||
entries.sort(function (a, b) { return a.cn < b.cn; });
|
||||
|
||||
expect(entries[0].cn).to.equal('users');
|
||||
expect(entries[0].cn).to.equal('ldap-test-1');
|
||||
expect(entries[0].memberuid.length).to.equal(2);
|
||||
expect(entries[0].memberuid).to.contain(admin.id);
|
||||
expect(entries[0].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[1].cn).to.equal('admins');
|
||||
// if only one entry, the array becomes a string :-/
|
||||
expect(entries[1].cn).to.equal('ldap-test-2');
|
||||
expect(entries[1].memberuid).to.equal(admin.id);
|
||||
|
||||
expect(entries[2].cn).to.equal('ldap-test-1');
|
||||
expect(entries[2].memberuid.length).to.equal(2);
|
||||
expect(entries[2].memberuid).to.contain(admin.id);
|
||||
expect(entries[2].memberuid).to.contain(user.id);
|
||||
|
||||
expect(entries[3].cn).to.equal('ldap-test-2');
|
||||
expect(entries[3].memberuid).to.equal(admin.id);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user