@@ -5,8 +5,7 @@
|
|||||||
// From https://www.npmjs.com/package/password-generator
|
// From https://www.npmjs.com/package/password-generator
|
||||||
|
|
||||||
exports = module.exports = {
|
exports = module.exports = {
|
||||||
generate: generate,
|
generate: generate
|
||||||
validate: validate
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var assert = require('assert'),
|
var assert = require('assert'),
|
||||||
@@ -37,11 +36,3 @@ function generate() {
|
|||||||
|
|
||||||
return password;
|
return password;
|
||||||
}
|
}
|
||||||
|
|
||||||
function validate(password) {
|
|
||||||
assert.strictEqual(typeof password, 'string');
|
|
||||||
|
|
||||||
if (!password.match(gPasswordTestRegExp)) return new Error('Password must be 8-30 character with at least one uppercase, one numeric and one special character');
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -128,36 +128,6 @@ describe('User', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('fails due to missing upper case password', function (done) {
|
|
||||||
users.create(USERNAME, 'thisiseightch%$234arslong', EMAIL, DISPLAY_NAME, AUDIT_SOURCE, function (error, result) {
|
|
||||||
expect(error).to.be.ok();
|
|
||||||
expect(result).to.not.be.ok();
|
|
||||||
expect(error.reason).to.equal(UsersError.BAD_FIELD);
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('fails due to missing numerics in password', function (done) {
|
|
||||||
users.create(USERNAME, 'foobaRASDF%', EMAIL, DISPLAY_NAME, AUDIT_SOURCE, function (error, result) {
|
|
||||||
expect(error).to.be.ok();
|
|
||||||
expect(result).to.not.be.ok();
|
|
||||||
expect(error.reason).to.equal(UsersError.BAD_FIELD);
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('fails due to missing special chars in password', function (done) {
|
|
||||||
users.create(USERNAME, 'foobaRASDF23423', EMAIL, DISPLAY_NAME, AUDIT_SOURCE, function (error, result) {
|
|
||||||
expect(error).to.be.ok();
|
|
||||||
expect(result).to.not.be.ok();
|
|
||||||
expect(error.reason).to.equal(UsersError.BAD_FIELD);
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('fails due to reserved username', function (done) {
|
it('fails due to reserved username', function (done) {
|
||||||
users.create('admin', PASSWORD, EMAIL, DISPLAY_NAME, AUDIT_SOURCE, function (error, result) {
|
users.create('admin', PASSWORD, EMAIL, DISPLAY_NAME, AUDIT_SOURCE, function (error, result) {
|
||||||
expect(error).to.be.ok();
|
expect(error).to.be.ok();
|
||||||
|
|||||||
@@ -45,7 +45,6 @@ var assert = require('assert'),
|
|||||||
userdb = require('./userdb.js'),
|
userdb = require('./userdb.js'),
|
||||||
util = require('util'),
|
util = require('util'),
|
||||||
uuid = require('uuid'),
|
uuid = require('uuid'),
|
||||||
validatePassword = require('./password.js').validate,
|
|
||||||
validator = require('validator'),
|
validator = require('validator'),
|
||||||
_ = require('underscore');
|
_ = require('underscore');
|
||||||
|
|
||||||
@@ -122,6 +121,14 @@ function validateDisplayName(name) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validatePassword(password) {
|
||||||
|
assert.strictEqual(typeof password, 'string');
|
||||||
|
|
||||||
|
if (password.length < 8) return new UsersError(UsersError.BAD_FIELD, 'Password must be atleast 8 characters');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
function removePrivateFields(user) {
|
function removePrivateFields(user) {
|
||||||
return _.pick(user, 'id', 'username', 'email', 'fallbackEmail', 'displayName', 'groupIds', 'admin');
|
return _.pick(user, 'id', 'username', 'email', 'fallbackEmail', 'displayName', 'groupIds', 'admin');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user