diff --git a/modules/users/client/views/admin/edit-user.client.view.html b/modules/users/client/views/admin/edit-user.client.view.html index 6a2795f6..e7cc0d2b 100644 --- a/modules/users/client/views/admin/edit-user.client.view.html +++ b/modules/users/client/views/admin/edit-user.client.view.html @@ -7,22 +7,25 @@

User

- +

First name is required.

- +

Last name is required.

-
+
- + +
+

At least one role is required.

+
diff --git a/modules/users/client/views/admin/list-users.client.view.html b/modules/users/client/views/admin/list-users.client.view.html index 4ef28d4b..62a907d1 100644 --- a/modules/users/client/views/admin/list-users.client.view.html +++ b/modules/users/client/views/admin/list-users.client.view.html @@ -12,6 +12,7 @@

Users

diff --git a/modules/users/server/models/user.server.model.js b/modules/users/server/models/user.server.model.js index bcaff5d8..e7c0af08 100644 --- a/modules/users/server/models/user.server.model.js +++ b/modules/users/server/models/user.server.model.js @@ -85,7 +85,8 @@ var UserSchema = new Schema({ type: String, enum: ['user', 'admin'] }], - default: ['user'] + default: ['user'], + required: 'Please provide at least one role' }, updated: { type: Date diff --git a/modules/users/tests/server/user.server.model.tests.js b/modules/users/tests/server/user.server.model.tests.js index 5656937b..9ce39106 100644 --- a/modules/users/tests/server/user.server.model.tests.js +++ b/modules/users/tests/server/user.server.model.tests.js @@ -85,6 +85,54 @@ describe('User Model Unit Tests:', function () { }); }); + it('should be able to update an existing user with valid roles without problems', function (done) { + var _user = new User(user); + + _user.save(function (err) { + should.not.exist(err); + _user.roles = ['user', 'admin']; + _user.save(function (err) { + should.not.exist(err); + _user.remove(function (err) { + should.not.exist(err); + done(); + }); + }); + }); + }); + + it('should be able to show an error when trying to update an existing user without a role', function (done) { + var _user = new User(user); + + _user.save(function (err) { + should.not.exist(err); + _user.roles = []; + _user.save(function (err) { + should.exist(err); + _user.remove(function (err) { + should.not.exist(err); + done(); + }); + }); + }); + }); + + it('should be able to show an error when trying to update an existing user with a invalid role', function (done) { + var _user = new User(user); + + _user.save(function (err) { + should.not.exist(err); + _user.roles = ['invalid-user-role-enum']; + _user.save(function (err) { + should.exist(err); + _user.remove(function (err) { + should.not.exist(err); + done(); + }); + }); + }); + }); + it('should confirm that saving user model doesnt change the password', function (done) { var _user1 = new User(user1);