File size: 986 Bytes
e7c953d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
'use strict';
var roles = require('../data/roles.js');
var propertyFilter = ['__v', '_id', '_user', 'updub', 'downdub', 'userid', 'roleid', 'roomid', 'ot_token'];
function UserModel(data) {
this.id = data.userid;
this.role = data.roleid ? data.roleid._id : null;
this.created = data._user.created;
this.username = data._user.username;
this.profileImage = data._user.profileImage;
for (var key in data) {
if (data.hasOwnProperty(key) && propertyFilter.indexOf(key) === -1) this[key] = data[key];
}
this.dub = undefined;
}
UserModel.prototype.set = function(attrs) {
for (var key in attrs) {
if (attrs.hasOwnProperty(key) && propertyFilter.indexOf(key) === -1) this[key] = attrs[key];
}
};
UserModel.prototype.hasPermission = function(perm) {
if (this.role && roles[this.role] && roles[this.role].rights.indexOf(perm) !== -1) return true;
return false;
};
module.exports = UserModel;
|