async'ify the groups code
This commit is contained in:
@@ -5,23 +5,21 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
var async = require('async'),
|
||||
const async = require('async'),
|
||||
BoxError = require('../boxerror.js'),
|
||||
database = require('../database.js'),
|
||||
constants = require('../constants.js'),
|
||||
expect = require('expect.js'),
|
||||
externalldap = require('../externalldap.js'),
|
||||
groupdb = require('../groupdb.js'),
|
||||
groups = require('../groups.js'),
|
||||
domains = require('../domains.js'),
|
||||
ldap = require('ldapjs'),
|
||||
mailboxdb = require('../mailboxdb.js'),
|
||||
mailer = require('../mailer.js'),
|
||||
server = require('../server.js'),
|
||||
settings = require('../settings.js'),
|
||||
superagent = require('superagent'),
|
||||
userdb = require('../userdb.js'),
|
||||
users = require('../users.js'),
|
||||
util = require('util'),
|
||||
_ = require('underscore');
|
||||
|
||||
var USERNAME = 'noBody';
|
||||
@@ -65,9 +63,7 @@ function cleanupUsers(done) {
|
||||
mailer._mailQueue = [];
|
||||
|
||||
async.series([
|
||||
groupdb._clear,
|
||||
userdb._clear,
|
||||
mailboxdb._clear,
|
||||
database._clear,
|
||||
], done);
|
||||
}
|
||||
|
||||
@@ -513,15 +509,13 @@ describe('External LDAP', function () {
|
||||
groupname: 'extGroup1'
|
||||
});
|
||||
|
||||
externalldap.sync(function progress() {}, function (error) {
|
||||
externalldap.sync(function progress() {}, async function (error) {
|
||||
expect(error).to.equal(null);
|
||||
|
||||
groups.getAll(function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.length).to.equal(0);
|
||||
const result = await groups.getAll();
|
||||
expect(result.length).to.equal(0);
|
||||
|
||||
done();
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -539,15 +533,13 @@ describe('External LDAP', function () {
|
||||
it('succeeds with groups enabled', function (done) {
|
||||
gLdapGroups = [];
|
||||
|
||||
externalldap.sync(function progress() {}, function (error) {
|
||||
externalldap.sync(function progress() {}, async function (error) {
|
||||
expect(error).to.equal(null);
|
||||
|
||||
groups.getAll(function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.length).to.equal(0);
|
||||
const result = await groups.getAll();
|
||||
expect(result.length).to.equal(0);
|
||||
|
||||
done();
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -556,15 +548,13 @@ describe('External LDAP', function () {
|
||||
groupname: 'extGroup1'
|
||||
});
|
||||
|
||||
externalldap.sync(function progress() {}, function (error) {
|
||||
externalldap.sync(function progress() {}, async function (error) {
|
||||
expect(error).to.equal(null);
|
||||
|
||||
groups.getAll(function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.length).to.equal(1);
|
||||
const result = await groups.getAll();
|
||||
expect(result.length).to.equal(1);
|
||||
|
||||
done();
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -573,37 +563,28 @@ describe('External LDAP', function () {
|
||||
groupname: 'extGroup2'
|
||||
});
|
||||
|
||||
externalldap.sync(function progress() {}, function (error) {
|
||||
externalldap.sync(function progress() {}, async function (error) {
|
||||
expect(error).to.equal(null);
|
||||
|
||||
groups.getAll(function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.length).to.equal(2);
|
||||
const result = await groups.getAll();
|
||||
expect(result.length).to.equal(2);
|
||||
|
||||
done();
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('does not create already existing group', function (done) {
|
||||
it('does not create already existing group', async function () {
|
||||
gLdapGroups.push({
|
||||
groupname: 'INTERNALgroup' // also tests lowercasing
|
||||
});
|
||||
|
||||
groups.create('internalgroup', '', function (error) {
|
||||
expect(error).to.equal(null);
|
||||
const externalldapSync = util.promisify(externalldap.sync);
|
||||
|
||||
externalldap.sync(function progress() {}, function (error) {
|
||||
expect(error).to.equal(null);
|
||||
await groups.add({ name: 'internalgroup' });
|
||||
await externalldapSync(function progress() {});
|
||||
|
||||
groups.getAll(function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.length).to.equal(3);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
const result = await groups.getAll();
|
||||
expect(result.length).to.equal(3);
|
||||
});
|
||||
|
||||
it('adds users of groups', function (done) {
|
||||
@@ -612,19 +593,15 @@ describe('External LDAP', function () {
|
||||
member: gLdapUsers.slice(-2).map(function (u) { return `cn=${u.username},${LDAP_CONFIG.baseDn}`; })
|
||||
});
|
||||
|
||||
externalldap.sync(function progress() {}, function (error) {
|
||||
externalldap.sync(function progress() {}, async function (error) {
|
||||
expect(error).to.equal(null);
|
||||
|
||||
groups.getByName('nonemptygroup', function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
const result = await groups.getByName('nonemptygroup');
|
||||
expect(result).to.be.ok();
|
||||
|
||||
groups.getMembers(result.id, function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.length).to.equal(2);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
const result2 = await groups.getMembers(result.id);
|
||||
expect(result2.length).to.equal(2);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -634,19 +611,16 @@ describe('External LDAP', function () {
|
||||
member: gLdapUsers.map(function (u) { return `cn=${u.username},${LDAP_CONFIG.baseDn}`; }) // has 2 entries
|
||||
});
|
||||
|
||||
externalldap.sync(function progress() {}, function (error) {
|
||||
externalldap.sync(function progress() {}, async function (error) {
|
||||
expect(error).to.equal(null);
|
||||
|
||||
groups.getByName('nonemptygroup', function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
const result = await groups.getByName('nonemptygroup');
|
||||
expect(result).to.be.ok();
|
||||
|
||||
groups.getMembers(result.id, function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.length).to.equal(2);
|
||||
const result2 = await groups.getMembers(result.id);
|
||||
expect(result2.length).to.equal(2);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -656,23 +630,18 @@ describe('External LDAP', function () {
|
||||
member: `cn=${gLdapUsers[0].username},${LDAP_CONFIG.baseDn}`
|
||||
});
|
||||
|
||||
externalldap.sync(function progress() {}, function (error) {
|
||||
externalldap.sync(function progress() {}, async function (error) {
|
||||
expect(error).to.equal(null);
|
||||
|
||||
groups.getByName('onemembergroup', function (error, result) {
|
||||
const result = await groups.getByName('onemembergroup');
|
||||
const result2 = await groups.getMembers(result.id);
|
||||
expect(result2.length).to.equal(1);
|
||||
|
||||
users.get(result2[0], function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.username).to.equal(gLdapUsers[0].username);
|
||||
|
||||
groups.getMembers(result.id, function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.length).to.equal(1);
|
||||
|
||||
users.get(result[0], function (error, result) {
|
||||
expect(error).to.equal(null);
|
||||
expect(result.username).to.equal(gLdapUsers[0].username);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user