Fix additional login manager issues (after b55e6536
)
This commit is contained in:
parent
2c25257e2b
commit
f60ded11e8
|
@ -31,7 +31,7 @@ Zotero.Sync.Storage.WebDAV = (function () {
|
||||||
var _cachedCredentials = false;
|
var _cachedCredentials = false;
|
||||||
|
|
||||||
var _loginManagerHost = 'chrome://zotero';
|
var _loginManagerHost = 'chrome://zotero';
|
||||||
var _loginManagerURL = '/';
|
var _loginManagerRealm = 'Zotero Storage Server';
|
||||||
|
|
||||||
var _lastSyncIDLength = 30;
|
var _lastSyncIDLength = 30;
|
||||||
|
|
||||||
|
@ -699,8 +699,8 @@ Zotero.Sync.Storage.WebDAV = (function () {
|
||||||
Zotero.debug('Getting WebDAV password');
|
Zotero.debug('Getting WebDAV password');
|
||||||
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
|
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
|
||||||
.getService(Components.interfaces.nsILoginManager);
|
.getService(Components.interfaces.nsILoginManager);
|
||||||
var logins = loginManager.findLogins({}, _loginManagerHost, "", null);
|
|
||||||
|
|
||||||
|
var logins = loginManager.findLogins({}, _loginManagerHost, null, _loginManagerRealm);
|
||||||
// Find user from returned array of nsILoginInfo objects
|
// Find user from returned array of nsILoginInfo objects
|
||||||
for (var i = 0; i < logins.length; i++) {
|
for (var i = 0; i < logins.length; i++) {
|
||||||
if (logins[i].username == username) {
|
if (logins[i].username == username) {
|
||||||
|
@ -708,6 +708,15 @@ Zotero.Sync.Storage.WebDAV = (function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pre-4.0.28.5 format, broken for findLogins and removeLogin in Fx41
|
||||||
|
logins = loginManager.findLogins({}, "chrome://zotero", "", null);
|
||||||
|
for (var i = 0; i < logins.length; i++) {
|
||||||
|
if (logins[i].username == username
|
||||||
|
&& logins[i].formSubmitURL == "Zotero Storage Server") {
|
||||||
|
return logins[i].password;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -722,19 +731,36 @@ Zotero.Sync.Storage.WebDAV = (function () {
|
||||||
|
|
||||||
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
|
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
|
||||||
.getService(Components.interfaces.nsILoginManager);
|
.getService(Components.interfaces.nsILoginManager);
|
||||||
var logins = loginManager.findLogins({}, _loginManagerHost, "", null);
|
var logins = loginManager.findLogins({}, _loginManagerHost, null, _loginManagerRealm);
|
||||||
|
|
||||||
for (var i = 0; i < logins.length; i++) {
|
for (var i = 0; i < logins.length; i++) {
|
||||||
Zotero.debug('Clearing WebDAV passwords');
|
Zotero.debug('Clearing WebDAV passwords');
|
||||||
|
if (logins[i].httpRealm == _loginManagerRealm) {
|
||||||
loginManager.removeLogin(logins[i]);
|
loginManager.removeLogin(logins[i]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pre-4.0.28.5 format, broken for findLogins and removeLogin in Fx41
|
||||||
|
logins = loginManager.findLogins({}, _loginManagerHost, "", null);
|
||||||
|
for (var i = 0; i < logins.length; i++) {
|
||||||
|
Zotero.debug('Clearing old WebDAV passwords');
|
||||||
|
if (logins[i].formSubmitURL == "Zotero Storage Server") {
|
||||||
|
try {
|
||||||
|
loginManager.removeLogin(logins[i]);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
Zotero.logError(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password) {
|
if (password) {
|
||||||
|
Zotero.debug('Setting WebDAV password');
|
||||||
var nsLoginInfo = new Components.Constructor("@mozilla.org/login-manager/loginInfo;1",
|
var nsLoginInfo = new Components.Constructor("@mozilla.org/login-manager/loginInfo;1",
|
||||||
Components.interfaces.nsILoginInfo, "init");
|
Components.interfaces.nsILoginInfo, "init");
|
||||||
var loginInfo = new nsLoginInfo(_loginManagerHost, _loginManagerURL,
|
var loginInfo = new nsLoginInfo(_loginManagerHost, null,
|
||||||
null, username, password, "", "");
|
_loginManagerRealm, username, password, "", "");
|
||||||
loginManager.addLogin(loginInfo);
|
loginManager.addLogin(loginInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1235,7 +1235,7 @@ Zotero.Sync.Server = new function () {
|
||||||
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
|
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
|
||||||
.getService(Components.interfaces.nsILoginManager);
|
.getService(Components.interfaces.nsILoginManager);
|
||||||
try {
|
try {
|
||||||
var logins = loginManager.findLogins({}, _loginManagerHost, "", null);
|
var logins = loginManager.findLogins({}, _loginManagerHost, null, _loginManagerRealm);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
Zotero.debug(e);
|
Zotero.debug(e);
|
||||||
|
@ -1265,6 +1265,18 @@ Zotero.Sync.Server = new function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pre-4.0.28.5 format, broken for findLogins and removeLogin in Fx41,
|
||||||
|
var logins = loginManager.findLogins({}, _loginManagerHost, "", null);
|
||||||
|
for (var i = 0; i < logins.length; i++) {
|
||||||
|
if (logins[i].username == username
|
||||||
|
&& logins[i].formSubmitURL == "Zotero Sync Server") {
|
||||||
|
_cachedCredentials = {
|
||||||
|
username: username,
|
||||||
|
password: logins[i].password
|
||||||
|
};
|
||||||
|
return logins[i].password;
|
||||||
|
}
|
||||||
|
}
|
||||||
return '';
|
return '';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1273,10 +1285,28 @@ Zotero.Sync.Server = new function () {
|
||||||
|
|
||||||
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
|
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
|
||||||
.getService(Components.interfaces.nsILoginManager);
|
.getService(Components.interfaces.nsILoginManager);
|
||||||
var logins = loginManager.findLogins({}, _loginManagerHost, "", null);
|
|
||||||
|
var logins = loginManager.findLogins({}, _loginManagerHost, null, _loginManagerRealm);
|
||||||
for (var i = 0; i < logins.length; i++) {
|
for (var i = 0; i < logins.length; i++) {
|
||||||
Zotero.debug('Clearing Zotero sync credentials');
|
Zotero.debug('Clearing Zotero sync credentials');
|
||||||
|
if (logins[i].httpRealm == _loginManagerRealm) {
|
||||||
loginManager.removeLogin(logins[i]);
|
loginManager.removeLogin(logins[i]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pre-4.0.28.5 format, broken for findLogins in Fx41
|
||||||
|
logins = loginManager.findLogins({}, _loginManagerHost, "", null);
|
||||||
|
for (var i = 0; i < logins.length; i++) {
|
||||||
|
Zotero.debug('Clearing old Zotero sync credentials');
|
||||||
|
if (logins[i].formSubmitURL == "Zotero Sync Server") {
|
||||||
|
try {
|
||||||
|
loginManager.removeLogin(logins[i]);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
Zotero.logError(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1292,12 +1322,11 @@ Zotero.Sync.Server = new function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password) {
|
if (password) {
|
||||||
|
Zotero.debug('Setting Zotero sync password');
|
||||||
var nsLoginInfo = new Components.Constructor("@mozilla.org/login-manager/loginInfo;1",
|
var nsLoginInfo = new Components.Constructor("@mozilla.org/login-manager/loginInfo;1",
|
||||||
Components.interfaces.nsILoginInfo, "init");
|
Components.interfaces.nsILoginInfo, "init");
|
||||||
|
var loginInfo = new nsLoginInfo(_loginManagerHost, null,
|
||||||
Zotero.debug('Setting Zotero sync password');
|
_loginManagerRealm, username, password, "", "");
|
||||||
var loginInfo = new nsLoginInfo(_loginManagerHost, _loginManagerURL,
|
|
||||||
null, username, password, "", "");
|
|
||||||
loginManager.addLogin(loginInfo);
|
loginManager.addLogin(loginInfo);
|
||||||
_cachedCredentials = {
|
_cachedCredentials = {
|
||||||
username: username,
|
username: username,
|
||||||
|
@ -1332,7 +1361,7 @@ Zotero.Sync.Server = new function () {
|
||||||
this.apiVersion = 9;
|
this.apiVersion = 9;
|
||||||
|
|
||||||
var _loginManagerHost = 'chrome://zotero';
|
var _loginManagerHost = 'chrome://zotero';
|
||||||
var _loginManagerURL = '/';
|
var _loginManagerRealm = 'Zotero Sync Server';
|
||||||
|
|
||||||
var _serverURL = ZOTERO_CONFIG.SYNC_URL;
|
var _serverURL = ZOTERO_CONFIG.SYNC_URL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user