kibana-with-account
Version:
kibana-with-account is develop based kibana project
77 lines (56 loc) • 1.49 kB
JavaScript
var Joi = require('joi');
var Async = require('async');
var objectAssign = require('object-assign');
var BaseModel = require('hapi-mongo-models').BaseModel;
var slug = require('slug');
var UserGroup = BaseModel.extend({
constructor: function (attrs) {
objectAssign(this, attrs);
},
hasPermissionTo: function (permission) {
if (this.permissions && this.permissions.hasOwnProperty(permission)) {
return this.permissions[permission];
}
return false;
}
});
UserGroup._collection = 'userGroups';
UserGroup._idClass = String;
UserGroup.schema = Joi.object().keys({
_id: Joi.object(),
name: Joi.string().required(),
index: Joi.string().required()
});
UserGroup.indexes = [
[{name: 1}, {unique: true}]
];
UserGroup.create = function (name, callback) {
var indexSuffix = Math.random().toString(36).substr(2);
var document = {
name: name.toLowerCase(),
index: '.'.concat((name).toLowerCase(), indexSuffix)
};
this.insertOne(document, function (err, docs) {
if (err) {
return callback(err);
}
callback(null, docs[0]);
});
};
UserGroup.findGroupByName = function (name, callback) {
var self = this;
Async.auto({
group: function (done) {
var query = {
name: name.toLowerCase()
};
self.findOne(query, done);
}
}, function (err, results) {
if (err) {
return callback(err);
}
return callback(null, results.group);
});
};
module.exports = UserGroup;