migrate permissions and admin flag to user.role

This commit is contained in:
Girish Ramakrishnan
2020-02-21 12:17:06 -08:00
parent a8f1b0241e
commit 0e156b9376
27 changed files with 245 additions and 254 deletions

View File

@@ -20,7 +20,7 @@ var async = require('async'),
mailer = require('../mailer.js'),
settings = require('../settings.js'),
userdb = require('../userdb.js'),
users = require('../users.js'),
users = require('../users.js'),
_ = require('underscore');
var USERNAME = 'noBody';
@@ -61,7 +61,7 @@ function createOwner(done) {
userObject = result;
done();
done(null, userObject);
});
}
@@ -730,10 +730,14 @@ describe('User', function () {
});
describe('admin change mail triggers', function () {
let auditSource;
before(function (done) {
createOwner(function (error) {
createOwner(function (error, owner) {
expect(error).to.not.be.ok();
auditSource = _.extend({}, AUDIT_SOURCE, { userId: owner.id });
groups.create(NON_ADMIN_GROUP, done);
});
});
@@ -744,22 +748,20 @@ describe('User', function () {
username: 'seconduser',
password: 'ASDFkljsf#$^%2354',
email: 'some@thi.ng',
admin: false
role: users.ROLE_ADMIN
};
it('make second user admin does not send mail to action performer', function (done) {
var invitor = { username: USERNAME, email: EMAIL };
users.create(user1.username, user1.password, user1.email, DISPLAY_NAME, { invitor: invitor }, AUDIT_SOURCE, function (error, result) {
users.create(user1.username, user1.password, user1.email, DISPLAY_NAME, { }, auditSource, function (error, result) {
expect(error).to.not.be.ok();
expect(result).to.be.ok();
user1.id = result.id;
users.update(user1, { admin: true }, AUDIT_SOURCE, function (error) {
users.update(user1, { role: users.ROLE_ADMIN }, AUDIT_SOURCE, function (error) {
expect(error).to.not.be.ok();
user1.admin = true;
user1.role = users.ROLE_ADMIN;
// no emails should be sent out anymore, since the user performing the action does not get a notification anymore
checkMails(0, done);
});
@@ -767,29 +769,29 @@ describe('User', function () {
});
it('succeeds to remove admin flag does not send mail to action performer', function (done) {
users.update(user1, { admin: false }, AUDIT_SOURCE, function (error) {
users.update(user1, { role: users.ROLE_USER }, auditSource, function (error) {
expect(error).to.eql(null);
user1.admin = false;
user1.role = users.ROLE_USER;
// no emails should be sent out anymore, since the user performing the action does not get a notification anymore
checkMails(0, done);
});
});
it('make second user admin does send mail to other admins', function (done) {
users.update(user1, { admin: true }, { ip: '1.2.3.4', userId: 'someuserid' }, function (error) {
users.update(user1, { role: users.ROLE_ADMIN }, { ip: '1.2.3.4', userId: 'someuserid' }, function (error) {
expect(error).to.not.be.ok();
user1.admin = true;
user1.role = users.ROLE_ADMIN;
checkMails(1, done);
});
});
it('succeeds to remove admin flag does send mail to other admins', function (done) {
users.update(user1, { admin: false }, { ip: '1.2.3.4', userId: 'someuserid' }, function (error) {
users.update(user1, { role: users.ROLE_USER }, { ip: '1.2.3.4', userId: 'someuserid' }, function (error) {
expect(error).to.eql(null);
user1.admin = false;
user1.role = users.ROLE_USER;
checkMails(1, done);
});
});
@@ -800,7 +802,7 @@ describe('User', function () {
after(cleanupUsers);
it('succeeds for one admins', function (done) {
users.getAllAdmins(function (error, admins) {
users.getAdmins(function (error, admins) {
expect(error).to.eql(null);
expect(admins.length).to.equal(1);
expect(admins[0].username).to.equal(USERNAME.toLowerCase());
@@ -813,20 +815,19 @@ describe('User', function () {
username: 'seconduser',
password: 'Adfasdkjf#$%43',
email: 'some@thi.ng',
admin: false
role: users.ROLE_ADMIN
};
var invitor = { username: USERNAME, email: EMAIL };
users.create(user1.username, user1.password, user1.email, DISPLAY_NAME, { invitor: invitor }, AUDIT_SOURCE, function (error, result) {
expect(error).to.eql(null);
users.create(user1.username, user1.password, user1.email, DISPLAY_NAME, { role: users.ROLE_ADMIN }, AUDIT_SOURCE, function (error, result) {
expect(error).to.not.be.ok();
expect(result).to.be.ok();
user1.id = result.id;
users.update(user1, { admin: true }, AUDIT_SOURCE, function (error) {
users.update(user1, { role: users.ROLE_ADMIN }, AUDIT_SOURCE, function (error) {
expect(error).to.eql(null);
users.getAllAdmins(function (error, admins) {
users.getAdmins(function (error, admins) {
expect(error).to.eql(null);
expect(admins.length).to.equal(2);
expect(admins[0].username).to.equal(USERNAME.toLowerCase());