Merge pull request #957 from chrishunt/chrishunt/lock-down-the-base

Add 'login required' site setting
This commit is contained in:
Sam
2013-06-04 17:22:08 -07:00
15 changed files with 117 additions and 7 deletions
+10
View File
@@ -166,6 +166,16 @@ Discourse = Ember.Application.createWithMixins({
return loginController.authenticationComplete(options);
},
loginRequired: function() {
return (
Discourse.SiteSettings.login_required && !Discourse.User.current()
);
}.property(),
redirectIfLoginRequired: function(route) {
if(this.get('loginRequired')) { route.transitionTo('login'); }
},
/**
Our own $.ajax method. Makes sure the .then method executes in an Ember runloop
for performance reasons. Also automatically adjusts the URL to support installs
@@ -28,7 +28,7 @@ Discourse.StaticController = Discourse.Controller.extend({
});
Discourse.StaticController.reopenClass({
pages: ['faq', 'tos', 'privacy']
pages: ['faq', 'tos', 'privacy', 'login']
});
@@ -8,6 +8,8 @@
**/
Discourse.FilteredListRoute = Discourse.Route.extend({
redirect: function() { Discourse.redirectIfLoginRequired(this); },
exit: function() {
this._super();
@@ -8,6 +8,8 @@
**/
Discourse.ListCategoriesRoute = Discourse.Route.extend({
redirect: function() { Discourse.redirectIfLoginRequired(this); },
events: {
createCategory: function() {
@@ -8,6 +8,8 @@
**/
Discourse.TopicRoute = Discourse.Route.extend({
redirect: function() { Discourse.redirectIfLoginRequired(this); },
events: {
// Modals that can pop up within a topic
@@ -29,10 +29,34 @@
{{/if}}
</li>
<li>
<a class='icon expand' href='#' data-dropdown="search-dropdown" title='{{i18n search.title}}'><i class='icon-search'></i></a>
{{#if Discourse.loginRequired}}
<a class='icon expand' href='#' {{action showLogin}}>
<i class='icon-search'></i>
</a>
{{else}}
<a class='icon expand'
href='#'
data-dropdown="search-dropdown"
title='{{i18n search.title}}'>
<i class='icon-search'></i>
</a>
{{/if}}
</li>
<li class='categories dropdown'>
<a class='icon' data-dropdown="site-map-dropdown" href="#" title='{{i18n site_map}}'><i class='icon-reorder'></i></a>
{{#if Discourse.loginRequired}}
<a class='icon'
href="#"
{{action showLogin}}>
<i class='icon-reorder'></i>
</a>
{{else}}
<a class='icon'
data-dropdown="site-map-dropdown"
href="#"
title='{{i18n site_map}}'>
<i class='icon-reorder'></i>
</a>
{{/if}}
{{#if currentUser.site_flagged_posts_count}}
<a href='/admin/flags/active' title='{{i18n notifications.total_flagged}}' class='badge-notification flagged-posts'>{{currentUser.site_flagged_posts_count}}</a>
{{/if}}