| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | const _        = require('underscore');const Backbone = require('backbone');const model = Backbone.Model.extend({    idAttribute: 'id',    defaults: function () {        return {            id:          undefined,            name:        '',            nickname:    '',            email:       '',            is_disabled: false,            roles:       [],            permissions: null        };    },    /**     * @returns {Boolean}     */    isAdmin: function () {        return _.indexOf(this.get('roles'), 'admin') !== -1;    },    /**     * Checks if the perm has either `view` or `manage` value     *     * @param   {String}  item     * @returns {Boolean}     */    canView: function (item) {        let permissions = this.get('permissions');        return permissions !== null && typeof permissions[item] !== 'undefined' && ['view', 'manage'].indexOf(permissions[item]) !== -1;    },    /**     * Checks if the perm has `manage` value     *     * @param   {String}  item     * @returns {Boolean}     */    canManage: function (item) {        let permissions = this.get('permissions');        return permissions !== null && typeof permissions[item] !== 'undefined' && permissions[item] === 'manage';    }});module.exports = {    Model:      model,    Collection: Backbone.Collection.extend({        model: model    })};
 |