diff --git a/app/assets/javascripts/discourse.js b/app/assets/javascripts/discourse.js index b35fffef7..8f8b1ff18 100644 --- a/app/assets/javascripts/discourse.js +++ b/app/assets/javascripts/discourse.js @@ -98,14 +98,6 @@ window.Discourse = Ember.Application.createWithMixins(Discourse.Ajax, { return loginController.authenticationComplete(options); }, - loginRequired: function() { - return Discourse.SiteSettings.login_required && !Discourse.User.current(); - }.property().volatile(), - - redirectIfLoginRequired: function(route) { - if(this.get('loginRequired')) { route.transitionTo('login'); } - }, - /** Start up the Discourse application by running all the initializers we've defined. diff --git a/app/assets/javascripts/discourse/controllers/application.js.es6 b/app/assets/javascripts/discourse/controllers/application.js.es6 index 115654b62..176e0afff 100644 --- a/app/assets/javascripts/discourse/controllers/application.js.es6 +++ b/app/assets/javascripts/discourse/controllers/application.js.es6 @@ -6,4 +6,9 @@ export default Ember.Controller.extend({ Discourse.SiteSettings.allow_new_registrations && !Discourse.SiteSettings.enable_sso; }.property(), + + loginRequired: function() { + return Discourse.SiteSettings.login_required && !Discourse.User.current(); + }.property() + }); diff --git a/app/assets/javascripts/discourse/controllers/header.js.es6 b/app/assets/javascripts/discourse/controllers/header.js.es6 index 1c30a5716..8701149d9 100644 --- a/app/assets/javascripts/discourse/controllers/header.js.es6 +++ b/app/assets/javascripts/discourse/controllers/header.js.es6 @@ -7,6 +7,7 @@ export default DiscourseController.extend({ loadingNotifications: false, needs: ['application'], + loginRequired: Em.computed.alias('controllers.application.loginRequired'), canSignUp: Em.computed.alias('controllers.application.canSignUp'), showSignUpButton: function() { diff --git a/app/assets/javascripts/discourse/routes/discourse_route.js b/app/assets/javascripts/discourse/routes/discourse_route.js index 6934a9a48..b43148b05 100644 --- a/app/assets/javascripts/discourse/routes/discourse_route.js +++ b/app/assets/javascripts/discourse/routes/discourse_route.js @@ -21,6 +21,13 @@ Discourse.Route = Em.Route.extend({ Em.run.scheduleOnce('afterRender', Discourse.Route, 'cleanDOM'); }, + redirectIfLoginRequired: function() { + var app = this.controllerFor('application'); + if (app.get('loginRequired')) { + this.replaceWith('login'); + } + }, + openTopicDraft: function(model){ // If there's a draft, open the create topic composer if (model.draft) { diff --git a/app/assets/javascripts/discourse/routes/discovery_route.js b/app/assets/javascripts/discourse/routes/discovery_route.js index 1192de079..27f6d49c0 100644 --- a/app/assets/javascripts/discourse/routes/discovery_route.js +++ b/app/assets/javascripts/discourse/routes/discovery_route.js @@ -8,8 +8,7 @@ @module Discourse **/ Discourse.DiscoveryRoute = Discourse.Route.extend(Discourse.ScrollTop, Discourse.OpenComposer, { - - redirect: function() { Discourse.redirectIfLoginRequired(this); }, + redirect: function() { return this.redirectIfLoginRequired(); }, beforeModel: function(transition) { if (transition.targetName.indexOf("discovery.top") === -1 && diff --git a/app/assets/javascripts/discourse/routes/topic_route.js b/app/assets/javascripts/discourse/routes/topic_route.js index f95d57106..516b3787d 100644 --- a/app/assets/javascripts/discourse/routes/topic_route.js +++ b/app/assets/javascripts/discourse/routes/topic_route.js @@ -4,7 +4,7 @@ var isTransitioning = false, SCROLL_DELAY = 500; Discourse.TopicRoute = Discourse.Route.extend({ - redirect: function() { Discourse.redirectIfLoginRequired(this); }, + redirect: function() { return this.redirectIfLoginRequired(); }, queryParams: { filter: { replace: true }, diff --git a/app/assets/javascripts/discourse/templates/header.js.handlebars b/app/assets/javascripts/discourse/templates/header.js.handlebars index 4c4d7ba97..f6c1bd4ac 100644 --- a/app/assets/javascripts/discourse/templates/header.js.handlebars +++ b/app/assets/javascripts/discourse/templates/header.js.handlebars @@ -65,7 +65,7 @@ {{/if}}
  • - {{#if Discourse.loginRequired}} + {{#if loginRequired}} @@ -80,7 +80,7 @@ {{/if}}