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;