{{ghost-notifications}} diff --git a/core/client/utils/notifications.js b/core/client/utils/notifications.js index 1ae22e5b77..fb0bfa30d6 100644 --- a/core/client/utils/notifications.js +++ b/core/client/utils/notifications.js @@ -20,6 +20,15 @@ var Notifications = Ember.ArrayProxy.extend({ this.showError(errors[i].message || errors[i]); } }, + showAPIError: function (resp, defaultErrorText) { + defaultErrorText = defaultErrorText || 'There was a problem on the server, please try again.'; + + if (resp && resp.jqXHR && resp.jqXHR.responseJSON && resp.jqXHR.responseJSON.error) { + this.showError(resp.jqXHR.responseJSON.error); + } else { + this.showError(defaultErrorText); + } + }, showInfo: function (message) { this.pushObject({ type: 'info', diff --git a/core/server/controllers/admin.js b/core/server/controllers/admin.js index 46992b6d4e..687d296ee8 100644 --- a/core/server/controllers/admin.js +++ b/core/server/controllers/admin.js @@ -43,7 +43,9 @@ function setSelected(list, name) { adminControllers = { 'index': function (req, res) { /*jslint unparam:true*/ - res.render('default-ember'); + res.render('default-ember', { + user: JSON.stringify(req.session.userData) + }); }, // Route: index // Path: /ghost/ @@ -217,6 +219,8 @@ adminControllers = { req.session.regenerate(function (err) { if (!err) { req.session.user = user.id; + req.session.userData = user.attributes; + var redirect = config().paths.subdir + '/ghost/'; if (req.body.redirect) { redirect += decodeURIComponent(req.body.redirect); @@ -226,7 +230,7 @@ adminControllers = { loginSecurity = _.reject(loginSecurity, function (ipTime) { return ipTime.ip === remoteAddress; }); - res.json(200, {redirect: redirect}); + res.json(200, {redirect: redirect, userData: req.session.userData}); } }); }, function (error) { @@ -295,8 +299,13 @@ adminControllers = { if (!err) { if (req.session.user === undefined) { req.session.user = user.id; + req.session.userData = user; } - res.json(200, {redirect: config().paths.subdir + '/ghost/'}); + + res.json(200, { + redirect: config().paths.subdir + '/ghost/', + userData: req.session.userData + }); } }); }); diff --git a/core/server/views/default-ember.hbs b/core/server/views/default-ember.hbs index 63b4360b22..5c7d76bfa1 100644 --- a/core/server/views/default-ember.hbs +++ b/core/server/views/default-ember.hbs @@ -40,7 +40,12 @@