diff --git a/app/assets/javascripts/discourse/routes/user.js.es6 b/app/assets/javascripts/discourse/routes/user.js.es6 index 6e206c82e0..832e1cb0eb 100644 --- a/app/assets/javascripts/discourse/routes/user.js.es6 +++ b/app/assets/javascripts/discourse/routes/user.js.es6 @@ -1,22 +1,22 @@ -var INDEX_STREAM_ROUTES = ["user.deletedPosts", "user.flaggedPosts", "userActivity.index"]; +const INDEX_STREAM_ROUTES = ["user.deletedPosts", "user.flaggedPosts", "userActivity.index"]; export default Discourse.Route.extend({ - titleToken: function() { - var model = this.modelFor('user'); - var username = model.get('username'); + titleToken() { + const model = this.modelFor('user'); + const username = model.get('username'); if (username) { return [I18n.t("user.profile"), username]; } }, actions: { - logout: function() { + logout() { Discourse.logout(); }, - composePrivateMessage: function(user, post) { - var recipient = user ? user.get('username') : '', + composePrivateMessage(user, post) { + const recipient = user ? user.get('username') : '', reply = post ? window.location.protocol + "//" + window.location.host + post.get("url") : null; return this.controllerFor('composer').open({ @@ -28,18 +28,18 @@ export default Discourse.Route.extend({ }); }, - willTransition: function(transition) { + willTransition(transition) { // will reset the indexStream when transitioning to routes that aren't "indexStream" // otherwise the "header" will jump - var isIndexStream = ~INDEX_STREAM_ROUTES.indexOf(transition.targetName); + const isIndexStream = ~INDEX_STREAM_ROUTES.indexOf(transition.targetName); this.controllerFor('user').set('indexStream', isIndexStream); return true; } }, - model: function(params) { + model(params) { // If we're viewing the currently logged in user, return that object instead - var currentUser = Discourse.User.current(); + const currentUser = this.currentUser; if (currentUser && (params.username.toLowerCase() === currentUser.get('username_lower'))) { return currentUser; } @@ -47,34 +47,38 @@ export default Discourse.Route.extend({ return Discourse.User.create({username: params.username}); }, - afterModel: function() { - var user = this.modelFor('user'); + afterModel() { + const user = this.modelFor('user'); + const self = this; + return user.findDetails().then(function() { return user.findStaffInfo(); + }).catch(function() { + return self.replaceWith('/404'); }); }, - serialize: function(model) { + serialize(model) { if (!model) return {}; return { username: (Em.get(model, 'username') || '').toLowerCase() }; }, - setupController: function(controller, user) { + setupController(controller, user) { controller.set('model', user); // Add a search context this.controllerFor('search').set('searchContext', user.get('searchContext')); }, - activate: function() { + activate() { this._super(); - var user = this.modelFor('user'); + const user = this.modelFor('user'); this.messageBus.subscribe("/users/" + user.get('username_lower'), function(data) { user.loadUserAction(data); }); }, - deactivate: function() { + deactivate() { this._super(); this.messageBus.unsubscribe("/users/" + this.modelFor('user').get('username_lower'));