Initial commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
var $ = require('jquery');
|
||||
var _ = require('underscore');
|
||||
var UsersGroup = require('./users-group-collection');
|
||||
|
||||
// This module fetch the user for every group present
|
||||
// in the ACL permission collection. The vizjson doesn't
|
||||
// provide and we need it for the sharing stats in the header.
|
||||
|
||||
module.exports = {
|
||||
track: function (opts) {
|
||||
this.acl = opts.acl;
|
||||
this.configModel = opts.configModel;
|
||||
this.userModel = opts.userModel;
|
||||
|
||||
this.acl.on('reset', this.fetchUsers, this);
|
||||
this.fetchUsers();
|
||||
},
|
||||
|
||||
fetchUsers: function () {
|
||||
var self = this;
|
||||
var promises = [];
|
||||
|
||||
promises = _.map(this.acl.where({type: 'group'}), function (group) {
|
||||
var entity = group.get('entity');
|
||||
var deferred = new $.Deferred();
|
||||
|
||||
if (!entity.users || entity.users.length === 0) {
|
||||
entity.users = new UsersGroup([], {
|
||||
group: entity,
|
||||
configModel: self.configModel,
|
||||
organization: self.userModel.getOrganization()
|
||||
});
|
||||
|
||||
entity.users.fetch({
|
||||
success: function () {
|
||||
deferred.resolve();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
deferred.resolve();
|
||||
}
|
||||
|
||||
return deferred.promise();
|
||||
}, this);
|
||||
|
||||
$.when.apply($, promises).done(function () {
|
||||
self.acl.trigger('fetch');
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user