From 13df7e8d38ad473e21ef98114a51269ca3a12a16 Mon Sep 17 00:00:00 2001 From: yflory Date: Thu, 10 Oct 2019 13:56:12 +0200 Subject: [PATCH] Fix team editor --- www/common/cryptpad-common.js | 3 ++- www/common/drive-ui.js | 1 + www/common/outer/async-store.js | 4 ++-- www/common/outer/team.js | 10 ++++++++-- www/teams/inner.js | 10 ++++------ 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 2b3dd4412..11c39179e 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -372,7 +372,8 @@ define([ common.getMetadata = function (cb) { - postMessage("GET_METADATA", null, function (obj) { + var parsed = Hash.parsePadUrl(window.location.href); + postMessage("GET_METADATA", parsed && parsed.type, function (obj) { if (obj && obj.error) { return void cb(obj.error); } cb(null, obj); }); diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index e8b9d7235..ec001e1af 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -526,6 +526,7 @@ define([ var files = proxy.drive; var history = driveConfig.history || {}; var edPublic = driveConfig.edPublic || priv.edPublic; + config.editKey = driveConfig.editKey; APP.origin = priv.origin; APP.hideDuplicateOwned = Util.find(priv, ['settings', 'drive', 'hideDuplicate']); APP.closed = false; diff --git a/www/common/outer/async-store.js b/www/common/outer/async-store.js index a00ce6b9c..ee890579e 100644 --- a/www/common/outer/async-store.js +++ b/www/common/outer/async-store.js @@ -550,9 +550,9 @@ define([ }; // Get the metadata for sframe-common-outer - Store.getMetadata = function (clientId, data, cb) { + Store.getMetadata = function (clientId, app, cb) { var disableThumbnails = Util.find(store.proxy, ['settings', 'general', 'disableThumbnails']); - var teams = store.modules['team'] && store.modules['team'].getTeamsData(); + var teams = store.modules['team'] && store.modules['team'].getTeamsData(app); var metadata = { // "user" is shared with everybody via the userlist user: { diff --git a/www/common/outer/team.js b/www/common/outer/team.js index 428322d2f..c57b010c2 100644 --- a/www/common/outer/team.js +++ b/www/common/outer/team.js @@ -253,12 +253,13 @@ define([ rt: team.realtime, editKey: secret && secret.keys.secondaryKey }); + team.secondaryKey = secret && secret.keys.secondaryKey; team.userObject = manager.user.userObject; team.userObject.fixFiles(); }).nThen(function (waitFor) { ctx.teams[id] = team; registerChangeEvents(ctx, team, proxy); - SF.checkMigration(secret && secret.keys.secondaryKey, proxy, team.userObject, waitFor()); + SF.checkMigration(team.secondaryKey, proxy, team.userObject, waitFor()); SF.loadSharedFolders(ctx.Store, ctx.store.network, team, team.userObject, waitFor); }).nThen(function () { if (!team.rpc) { return; } @@ -1109,8 +1110,10 @@ define([ team.getTeam = function (id) { return ctx.teams[id]; }; - team.getTeamsData = function () { + team.getTeamsData = function (app) { var t = {}; + var safe = false; + if (['drive', 'teams', 'settings'].indexOf(app) !== -1) { safe = true; } Object.keys(teams).forEach(function (id) { t[id] = { owner: teams[id].owner, @@ -1118,6 +1121,9 @@ define([ edPublic: Util.find(teams[id], ['keys', 'drive', 'edPublic']), avatar: Util.find(teams[id], ['metadata', 'avatar']) }; + if (safe) { + t[id].secondaryKey = ctx.teams[id].secondaryKey; + } }); return t; }; diff --git a/www/teams/inner.js b/www/teams/inner.js index b313e78e3..8df4df44f 100644 --- a/www/teams/inner.js +++ b/www/teams/inner.js @@ -241,6 +241,8 @@ define([ // Team APP var loadTeam = function (common, id) { + var metadataMgr = common.getMetadataMgr(); + var privateData = metadataMgr.getPrivateData(); var sframeChan = common.getSframeChannel(); var proxy = {}; var folders = {}; @@ -261,11 +263,7 @@ define([ driveAPP.team = id; // Provide secondaryKey - var teamData = (proxy.teams || {})[id]; - var secret; - if (teamData) { - secret = Hash.getSecrets('team', teamData.hash, teamData.password); - } + var teamData = (privateData.teams || {})[id] || {}; var drive = DriveUI.create(common, { proxy: proxy, folders: folders, @@ -273,7 +271,7 @@ define([ updateSharedFolders: updateSharedFolders, APP: driveAPP, edPublic: APP.teamEdPublic, - editKey: secret && secret.keys.secondaryKey + editKey: teamData.secondaryKey }); APP.drive = drive; driveAPP.refresh = drive.refresh;