| // 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; |