www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 7ff2ddae8938a78be0b1b4771d46dc3de89a28f3
parent 909b0fdf2c789ffe880106a5a7ecb21e285fa660
Author: Dan Stillman <dstillman@zotero.org>
Date:   Thu, 30 Sep 2010 18:16:40 +0000

Sync credentials weren't cleared if username field was removed first


Diffstat:
Mchrome/content/zotero/xpcom/sync.js | 35+++++++++++++++++++----------------
1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/chrome/content/zotero/xpcom/sync.js b/chrome/content/zotero/xpcom/sync.js @@ -1096,8 +1096,8 @@ Zotero.Sync.Server = new function () { return ''; } - if (_cachedCredentials[username]) { - return _cachedCredentials[username]; + if (_cachedCredentials.username == username && _cachedCredentials.password) { + return _cachedCredentials.password; } Zotero.debug('Getting Zotero sync password'); @@ -1117,7 +1117,10 @@ Zotero.Sync.Server = new function () { // Find user from returned array of nsILoginInfo objects for (var i = 0; i < logins.length; i++) { if (logins[i].username == username) { - _cachedCredentials[username] = logins[i].password; + _cachedCredentials = { + username: username, + password: logins[i].password + }; return logins[i].password; } } @@ -1128,26 +1131,23 @@ Zotero.Sync.Server = new function () { this.__defineSetter__('password', function (password) { _sessionID = null; - var username = this.username; - - if (!username) { - Zotero.debug('Username not set before setting Zotero.Sync.Server.password'); - return; - } - - delete _cachedCredentials[username]; - var loginManager = Components.classes["@mozilla.org/login-manager;1"] .getService(Components.interfaces.nsILoginManager); - var logins = loginManager.findLogins({}, _loginManagerHost, _loginManagerURL, null); - for (var i = 0; i < logins.length; i++) { - Zotero.debug('Clearing Zotero sync passwords'); + Zotero.debug('Clearing Zotero sync credentials'); loginManager.removeLogin(logins[i]); break; } + _cachedCredentials = {}; + + var username = this.username; + + if (!username) { + return; + } + if (password) { var nsLoginInfo = new Components.Constructor("@mozilla.org/login-manager/loginInfo;1", Components.interfaces.nsILoginInfo, "init"); @@ -1156,7 +1156,10 @@ Zotero.Sync.Server = new function () { var loginInfo = new nsLoginInfo(_loginManagerHost, _loginManagerURL, null, username, password, "", ""); loginManager.addLogin(loginInfo); - _cachedCredentials[username] = password; + _cachedCredentials = { + username: username, + password: password + }; } });