Mercurial > bugzilla-dashboard
diff js/modules/app.js @ 59:440c8e2d776d
dashboard now auto-authenticated via cached form field password on firefox, if available.
author | Atul Varma <avarma@mozilla.com> |
---|---|
date | Sun, 25 Apr 2010 01:21:28 -0700 |
parents | f9001601bed6 |
children | 07d3d1560b93 |
line wrap: on
line diff
--- a/js/modules/app.js Sun Apr 25 00:51:07 2010 -0700 +++ b/js/modules/app.js Sun Apr 25 01:21:28 2010 -0700 @@ -2,6 +2,11 @@ var callbacks = []; var username; var password; + var passwordProvider; + + exports.setPasswordProvider = function setPasswordProvider(pp) { + passwordProvider = pp; + }; exports.whenChanged = function whenChanged(cb) { callbacks.push(cb); @@ -20,6 +25,11 @@ }; exports.set = function set(newUsername, newPassword) { + if ((newUsername && newUsername != "") && + (!newPassword || newPassword == "") && + (passwordProvider)) + newPassword = passwordProvider(newUsername); + if (newUsername == username && newPassword == password) return; @@ -52,6 +62,8 @@ Require.modules["app/ui/login-form"] = function(exports, require) { var $ = require("jQuery"); + var cachedUsername = $("#login .username").val(); + var cachedPassword = $("#login .password").val(); $("#login form").submit( function(event) { @@ -68,6 +80,13 @@ usernameField.val(user.username); }); + require("app/login").setPasswordProvider( + function maybeGetCachedPasswordFromForm(username) { + if (cachedUsername == username) + return cachedPassword; + return ""; + }); + require("app/ui").whenStarted( function maybeShowLoginForm() { if (!require("app/login").get().isLoggedIn) @@ -181,7 +200,7 @@ var user = require("app/login").get(); if (user.username != username) - require("app/login").set(username, ""); + require("app/login").set(username); } exports.init = function init(document) {