Merge branch 'soon' into staging
commit
e5992c29fa
www/common/outer
|
@ -1703,26 +1703,29 @@ define([
|
|||
// There is an allow list: check if we can authenticate
|
||||
if (!Array.isArray(allowed)) { return void cb('EINVAL'); }
|
||||
if (!store.loggedIn || !store.proxy.edPublic) { return void cb('EFORBIDDEN'); }
|
||||
var rpc;
|
||||
var teamModule = store.modules['team'];
|
||||
var teams = (teamModule && teamModule.getTeams()) || [];
|
||||
|
||||
if (allowed.indexOf(store.proxy.edPublic) !== -1) {
|
||||
// We are allowed: use our own rpc
|
||||
rpc = store.rpc;
|
||||
} else if (teams.some(function (teamId) {
|
||||
// We're not allowed: check our teams
|
||||
var ed = Util.find(store, ['proxy', 'teams', teamId, 'keys', 'drive', 'edPublic']);
|
||||
if (allowed.indexOf(ed) === -1) { return false; }
|
||||
// This team is allowed: use its rpc
|
||||
var t = teamModule.getTeam(teamId);
|
||||
rpc = t.rpc;
|
||||
return true;
|
||||
})) {}
|
||||
onReadyEvt.reg(function () {
|
||||
var rpc;
|
||||
var teamModule = store.modules['team'];
|
||||
var teams = (teamModule && teamModule.getTeams()) || [];
|
||||
|
||||
if (!rpc) { return void cb('EFORBIDDEN'); }
|
||||
rpc.send('COOKIE', '', function (err) {
|
||||
cb(err);
|
||||
if (allowed.indexOf(store.proxy.edPublic) !== -1) {
|
||||
// We are allowed: use our own rpc
|
||||
rpc = store.rpc;
|
||||
} else if (teams.some(function (teamId) {
|
||||
// We're not allowed: check our teams
|
||||
var ed = Util.find(store, ['proxy', 'teams', teamId, 'keys', 'drive', 'edPublic']);
|
||||
if (allowed.indexOf(ed) === -1) { return false; }
|
||||
// This team is allowed: use its rpc
|
||||
var t = teamModule.getTeam(teamId);
|
||||
rpc = t.rpc;
|
||||
return true;
|
||||
})) {}
|
||||
|
||||
if (!rpc) { return void cb('EFORBIDDEN'); }
|
||||
rpc.send('COOKIE', '', function (err) {
|
||||
cb(err);
|
||||
});
|
||||
});
|
||||
},
|
||||
onConnectionChange: function (info) {
|
||||
|
|
|
@ -107,6 +107,20 @@ define([
|
|||
// If we try to load an existing shared folder (isNew === false) but this folder
|
||||
// doesn't exist in the database, abort and cb
|
||||
nThen(function (waitFor) {
|
||||
// XXX use a config.cache flag in the new branches
|
||||
// If we don't have a network yet and we're pulling our own SF (no team id)
|
||||
// Make sure we have a cache
|
||||
if (!config.store.id && !config.store.network) {
|
||||
Cache.getChannelCache(secret.channel, waitFor(function (err, res) {
|
||||
if (err === "EINVAL") { // Cache not found
|
||||
waitFor.abort();
|
||||
store.manager.restrictedProxy(id, secret.channel);
|
||||
// XXX unrestrict when we connect?
|
||||
return void cb(null);
|
||||
}
|
||||
}));
|
||||
}
|
||||
}).nThen(function (waitFor) {
|
||||
isNewChannel(null, { channel: secret.channel }, waitFor(function (obj) {
|
||||
if (obj.isNew && !isNew) {
|
||||
store.manager.deprecateProxy(id, secret.channel);
|
||||
|
@ -190,7 +204,7 @@ define([
|
|||
validateKey: secret.keys.validateKey || undefined,
|
||||
owners: owners
|
||||
},
|
||||
//onRejected: onRejected // XXX not working
|
||||
onRejected: onRejected // XXX not working
|
||||
};
|
||||
var rt = sf.rt = Listmap.create(listmapConfig);
|
||||
rt.proxy.on('cacheready', function () {
|
||||
|
|
Loading…
Reference in New Issue