blob: 83488a91e9ab8200188ed30be7d3b2e8fdbb744d [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
var defineClass = require('./util/define-class');
var InvitationManager = defineClass({
publics: {
invite: function(username) {
}
},
privates: {
/**
* TODO(rosswang): this is a very short term hack just because user mount
* names on ns.dev.v.io don't yet default to Resolve in [...].
*/
advertise: function() {
return this.prereqs.then(function(prereqs) {
var mountNames = prereqs.mountNames;
var vanadiumWrapper = prereqs.vanadiumWrapper;
return vanadiumWrapper.getPermissions(mountNames.user)
.then(function(results) {
var perms = results[0];
perms.set('Resolve', {in: ['...']});
return vanadiumWrapper.setPermissions(mountNames.user, perms);
});
});
}
},
events: {
onError: 'memory'
},
/**
* @param prereqs promise of { mountNames, vanadiumWrapper }
*/
init: function(prereqs, groupManagerPromise) {
this.prereqs = prereqs;
this.groupManagerPromise = groupManagerPromise;
this.createInvitationsSg = groupManagerPromise.then(function(gm) {
return gm.createSyncGroup('invitations', ['invitations']);
});
this.advertise().catch(this.onError);
}
});
module.exports = InvitationManager;