Fauxton: dry up promise error callbacks Fauxton: Fix error if anon. user tries to create Admins
Fixes #COUCHDB-2170 Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/b63ff1b5 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/b63ff1b5 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/b63ff1b5 Branch: refs/heads/2041-update-ibrowse Commit: b63ff1b50b7bde0c8f1f95988d076dda63f41fed Parents: fb4e845 Author: Robert Kowalski <[email protected]> Authored: Thu Mar 6 11:37:17 2014 -0500 Committer: suelockwood <[email protected]> Committed: Thu Mar 6 11:40:30 2014 -0500 ---------------------------------------------------------------------- src/fauxton/app/addons/auth/resources.js | 44 +++++++++------------------ 1 file changed, 15 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb/blob/b63ff1b5/src/fauxton/app/addons/auth/resources.js ---------------------------------------------------------------------- diff --git a/src/fauxton/app/addons/auth/resources.js b/src/fauxton/app/addons/auth/resources.js index 2e359c9..71744e3 100644 --- a/src/fauxton/app/addons/auth/resources.js +++ b/src/fauxton/app/addons/auth/resources.js @@ -20,6 +20,18 @@ function (app, FauxtonAPI, CouchdbSession) { var Auth = new FauxtonAPI.addon(); + var promiseErrorHandler = function (xhr, type, msg) { + msg = xhr; + if (arguments.length === 3) { + msg = xhr.responseJSON.reason; + } + + FauxtonAPI.addNotification({ + msg: msg, + type: 'error' + }); + }; + var Admin = Backbone.Model.extend({ url: function () { @@ -58,7 +70,6 @@ function (app, FauxtonAPI, CouchdbSession) { this.messages = _.extend({}, { missingCredentials: 'Username or password cannot be blank.', passwordsNotMatch: 'Passwords do not match.', - incorrectCredentials: 'Incorrect username or password.', loggedIn: 'You have been logged in.', adminCreated: 'CouchDB admin created', changePassword: 'Your password has been updated.' @@ -234,12 +245,7 @@ function (app, FauxtonAPI, CouchdbSession) { } }); - promise.fail(function (rsp) { - FauxtonAPI.addNotification({ - msg: 'Could not create admin. Reason' + rsp + '.', - type: 'error' - }); - }); + promise.fail(promiseErrorHandler); } }); @@ -264,18 +270,7 @@ function (app, FauxtonAPI, CouchdbSession) { FauxtonAPI.navigate('/'); }); - promise.fail(function (xhr, type, msg) { - if (arguments.length === 3) { - msg = FauxtonAPI.session.messages.incorrectCredentials; - } else { - msg = xhr; - } - - FauxtonAPI.addNotification({ - msg: msg, - type: 'error' - }); - }); + promise.fail(promiseErrorHandler); } }); @@ -302,16 +297,7 @@ function (app, FauxtonAPI, CouchdbSession) { that.$('#password-confirm').val(''); }); - promise.fail(function (xhr, error, msg) { - if (arguments.length < 3) { - msg = xhr; - } - - FauxtonAPI.addNotification({ - msg: xhr, - type: 'error' - }); - }); + promise.fail(promiseErrorHandler); } });
