From 3c1779a66763909d5d94d3c5679395555a5d79a0 Mon Sep 17 00:00:00 2001 From: ansuz Date: Fri, 19 Jan 2018 10:27:16 +0100 Subject: [PATCH 1/4] give function a more sensible name --- rpc.js | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/rpc.js b/rpc.js index b48df570a..1f2f44629 100644 --- a/rpc.js +++ b/rpc.js @@ -95,8 +95,7 @@ var unescapeKeyCharacters = function (key) { return key.replace(/\-/g, '/'); }; -// TODO Rename to getSession ? -var beginSession = function (Sessions, key) { +var getSession = function (Sessions, key) { var safeKey = escapeKeyCharacters(key); if (Sessions[safeKey]) { Sessions[safeKey].atime = +new Date(); @@ -136,7 +135,7 @@ var expireSessions = function (Sessions) { var addTokenForKey = function (Sessions, publicKey, token) { if (!Sessions[publicKey]) { throw new Error('undefined user'); } - var user = beginSession(Sessions, publicKey); + var user = getSession(Sessions, publicKey); user.tokens.push(token); user.atime = +new Date(); if (user.tokens.length > 2) { user.tokens.shift(); } @@ -158,7 +157,7 @@ var isValidCookie = function (Sessions, publicKey, cookie) { return false; } - var user = beginSession(Sessions, publicKey); + var user = getSession(Sessions, publicKey); if (!user) { return false; } var idx = user.tokens.indexOf(parsed.seq); @@ -213,7 +212,7 @@ var checkSignature = function (signedMsg, signature, publicKey) { }; var loadUserPins = function (Env, publicKey, cb) { - var session = beginSession(Env.Sessions, publicKey); + var session = getSession(Env.Sessions, publicKey); if (session.channels) { return cb(session.channels); @@ -579,7 +578,7 @@ var pinChannel = function (Env, publicKey, channels, cb) { // get channel list ensures your session has a cached channel list getChannelList(Env, publicKey, function (pinned) { - var session = beginSession(Env.Sessions, publicKey); + var session = getSession(Env.Sessions, publicKey); // only pin channels which are not already pinned var toStore = channels.filter(function (channel) { @@ -622,7 +621,7 @@ var unpinChannel = function (Env, publicKey, channels, cb) { } getChannelList(Env, publicKey, function (pinned) { - var session = beginSession(Env.Sessions, publicKey); + var session = getSession(Env.Sessions, publicKey); // only unpin channels which are pinned var toStore = channels.filter(function (channel) { @@ -647,7 +646,7 @@ var unpinChannel = function (Env, publicKey, channels, cb) { var resetUserPins = function (Env, publicKey, channelList, cb) { if (!Array.isArray(channelList)) { return void cb('INVALID_PIN_LIST'); } - var session = beginSession(Env.Sessions, publicKey); + var session = getSession(Env.Sessions, publicKey); if (!channelList.length) { return void getHash(Env, publicKey, function (e, hash) { @@ -812,7 +811,7 @@ var upload = function (Env, publicKey, content, cb) { catch (e) { return void cb('DECODE_BUFFER'); } var len = dec.length; - var session = beginSession(Env.Sessions, publicKey); + var session = getSession(Env.Sessions, publicKey); if (typeof(session.currentUploadSize) !== 'number' || typeof(session.currentUploadSize) !== 'number') { @@ -844,7 +843,7 @@ var upload = function (Env, publicKey, content, cb) { var upload_cancel = function (Env, publicKey, cb) { var paths = Env.paths; - var session = beginSession(Env.Sessions, publicKey); + var session = getSession(Env.Sessions, publicKey); delete session.currentUploadSize; delete session.pendingUploadSize; if (session.blobstage) { session.blobstage.close(); } @@ -874,7 +873,7 @@ var isFile = function (filePath, cb) { var upload_complete = function (Env, publicKey, cb) { var paths = Env.paths; - var session = beginSession(Env.Sessions, publicKey); + var session = getSession(Env.Sessions, publicKey); if (session.blobstage && session.blobstage.close) { session.blobstage.close(); @@ -1141,7 +1140,7 @@ RPC.create = function (config /*:typeof(ConfigType)*/, cb /*:(?Error, ?Function) // make sure a user object is initialized in the cookie jar if (publicKey) { - beginSession(Sessions, publicKey); + getSession(Sessions, publicKey); } else { console.log("No public key"); } @@ -1287,7 +1286,7 @@ RPC.create = function (config /*:typeof(ConfigType)*/, cb /*:(?Error, ?Function) return void upload_status(Env, safeKey, msg[1], function (e, yes) { if (!e && !yes) { // no pending uploads, set the new size - var user = beginSession(Sessions, safeKey); + var user = getSession(Sessions, safeKey); user.pendingUploadSize = filesize; user.currentUploadSize = 0; } @@ -1321,7 +1320,7 @@ RPC.create = function (config /*:typeof(ConfigType)*/, cb /*:(?Error, ?Function) } // if session has not been authenticated, do so - var session = beginSession(Sessions, safeKey); + var session = getSession(Sessions, safeKey); if (typeof(session.privilege) !== 'boolean') { return void isPrivilegedUser(publicKey, function (yes) { session.privilege = yes; From 69c33e2f8380fad794be389820d381c5eb02d026 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 23 Jan 2018 14:24:40 +0100 Subject: [PATCH 2/4] Ability to disable profile --- www/common/application_config_internal.js | 9 ++- www/common/common-ui-elements.js | 6 +- www/common/toolbar3.js | 96 ++++++++++++----------- www/profile/inner.js | 6 ++ www/settings/inner.js | 7 +- 5 files changed, 70 insertions(+), 54 deletions(-) diff --git a/www/common/application_config_internal.js b/www/common/application_config_internal.js index bea0bc343..24c46b790 100644 --- a/www/common/application_config_internal.js +++ b/www/common/application_config_internal.js @@ -88,14 +88,14 @@ define(function() { //config.hideUsageBar = true; // Disable feedback for all the users and hide the settings part about feedback - config.disableFeedback = true; + //config.disableFeedback = true; // Add new options in the share modal (extend an existing tab or add a new tab). // More info about how to use it on the wiki: // https://github.com/xwiki-labs/cryptpad/wiki/Application-config#configcustomizeshareoptions //config.customizeShareOptions = function (hashes, tabs, config) {}; - // Add code to be executed on every page before loading the user object. `isLoggedIn` is a boolean + // Add code to be executed on every page before loading the user object. `isLoggedIn` (bool) is // indicating if the user is registered or anonymous. Here you can change the way anonymous users // work in CryptPad, use an external SSO or even force registration // *NOTE*: You have to call the `callback` function to continue the loading process @@ -106,5 +106,10 @@ define(function() { // *NOTE*: You have to call the `callback` function to continue the loading process //config.afterLogin = function(api, callback) {}; + // Disabling the profile app allows you to import the profile informations (display name, avatar) + // from an external source and make sure the users can't change them from CryptPad. + // You can use config.afterLogin to import these values in the users' drive. + //config.disableProfile = true; + return config; }); diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index dbbf86b71..0100be3f8 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -1274,7 +1274,7 @@ define([ $userAdminContent.append($userAccount).append(Util.fixHTML(accountName)); $userAdminContent.append($('
')); } - if (config.displayName) { + if (config.displayName && !AppConfig.disableProfile) { // Hide "Display name:" in read only mode $userName.append(Messages.user_displayName + ': '); $userName.append($displayedName); @@ -1297,14 +1297,14 @@ define([ }); } // Add the change display name button if not in read only mode - if (config.changeNameButtonCls && config.displayChangeName) { + if (config.changeNameButtonCls && config.displayChangeName && !AppConfig.disableProfile) { options.push({ tag: 'a', attributes: {'class': config.changeNameButtonCls}, content: Messages.user_rename }); } - if (accountName) { + if (accountName && !AppConfig.disableProfile) { options.push({ tag: 'a', attributes: {'class': 'cp-toolbar-menu-profile'}, diff --git a/www/common/toolbar3.js b/www/common/toolbar3.js index 03cb9d7c1..c7afbaca8 100644 --- a/www/common/toolbar3.js +++ b/www/common/toolbar3.js @@ -238,55 +238,57 @@ define([ var $nameValue = $('', { 'class': 'cp-toolbar-userlist-name-value' }).text(name).appendTo($nameSpan); - var $button = $('