diff --git a/www/common/outer/team.js b/www/common/outer/team.js index e51edc2d1..7f8d21087 100644 --- a/www/common/outer/team.js +++ b/www/common/outer/team.js @@ -1138,10 +1138,15 @@ define([ teamData.hash = data.hash; teamData.keys.drive.edPrivate = data.keys.drive.edPrivate; teamData.keys.chat.edit = data.keys.chat.edit; - initRpc(ctx, team, teamData.keys.drive, function () {}); + initRpc(ctx, team, teamData.keys.drive, function () { + team.manager.addPin(team.pin, team.unpin); + }); var secret = Hash.getSecrets('team', data.hash, teamData.password); team.secondaryKey = secret && secret.keys.secondaryKey; + + var crypto = Crypto.createEncryptor(secret.keys); + team.listmap.setReadOnly(false, crypto); } else { delete teamData.hash; delete teamData.keys.drive.edPrivate; @@ -1150,6 +1155,8 @@ define([ if (team.rpc && team.rpc.destroy) { team.rpc.destroy(); } + team.manager.removePin(); + team.listmap.setReadOnly(true); } updateMyRights(ctx, teamId, data.hash); diff --git a/www/common/proxy-manager.js b/www/common/proxy-manager.js index 4f0fbb1ac..7c181be10 100644 --- a/www/common/proxy-manager.js +++ b/www/common/proxy-manager.js @@ -1243,6 +1243,15 @@ define([ }; }; + var addPin = function (pin, unpin) { + Env.pinPads = pin; + Env.unpinPads = unpin; + }; + var removePin = function (pin, unpin) { + delete Env.pinPads; + delete Env.unpinPads; + }; + return { // Manager addProxy: callWithEnv(addProxy), @@ -1250,6 +1259,8 @@ define([ deprecateProxy: callWithEnv(deprecateProxy), restrictedProxy: callWithEnv(restrictedProxy), addSharedFolder: callWithEnv(_addSharedFolder), + addPin: addPin, + removePin: removePin, // Drive command: callWithEnv(onCommand), getPadAttribute: callWithEnv(getPadAttribute),