FIX: do not show faq/guidelines page to anonymous users for private forums

This commit is contained in:
Arpit Jalan 2017-03-08 16:00:49 +05:30
parent cf8bc4483f
commit 801b5838e1
3 changed files with 39 additions and 6 deletions

View File

@ -10,6 +10,7 @@ class StaticController < ApplicationController
def show def show
return redirect_to(path '/') if current_user && (params[:id] == 'login' || params[:id] == 'signup') return redirect_to(path '/') if current_user && (params[:id] == 'login' || params[:id] == 'signup')
return redirect_to path('/login') if SiteSetting.login_required? && current_user.nil? && (params[:id] == 'faq' || params[:id] == 'guidelines')
map = { map = {
"faq" => {redirect: "faq_url", topic_id: "guidelines_topic_id"}, "faq" => {redirect: "faq_url", topic_id: "guidelines_topic_id"},

View File

@ -3,13 +3,13 @@
<ul class='nav-pills' role='navigation' itemscope itemtype='http://schema.org/SiteNavigationElement'> <ul class='nav-pills' role='navigation' itemscope itemtype='http://schema.org/SiteNavigationElement'>
<% unless SiteSetting.login_required? && current_user.nil? %> <% unless SiteSetting.login_required? && current_user.nil? %>
<li class="nav-item-about"><%= link_to t('about'), '/about' %></a></li> <li class="nav-item-about"><%= link_to t('about'), '/about' %></a></li>
<% end %>
<% if @faq_overriden %> <% if @faq_overriden %>
<li class='nav-item-guidelines'><a class='<%= @page == 'faq' ? 'active' : '' %>' href='<%= guidelines_path %>'><%= t 'guidelines' %></a></li> <li class='nav-item-guidelines'><a class='<%= @page == 'faq' ? 'active' : '' %>' href='<%= guidelines_path %>'><%= t 'guidelines' %></a></li>
<li class='nav-item-faq'><a href='<%= faq_path %>'><%= t 'js.faq' %></a></li> <li class='nav-item-faq'><a href='<%= faq_path %>'><%= t 'js.faq' %></a></li>
<% else %> <% else %>
<li class='nav-item-faq'><a class='<%= @page == 'faq' ? 'active' : '' %>' href='<%=faq_path%>'><%= t 'js.faq' %></a></li> <li class='nav-item-faq'><a class='<%= @page == 'faq' ? 'active' : '' %>' href='<%=faq_path%>'><%= t 'js.faq' %></a></li>
<% end %> <% end %>
<% end %>
<li class='nav-item-tos'><a href='<%= tos_path %>' class='<%= @page == 'tos' ? 'active' : '' %>'><%= t 'terms_of_service.title' %></a></li> <li class='nav-item-tos'><a href='<%= tos_path %>' class='<%= @page == 'tos' ? 'active' : '' %>'><%= t 'terms_of_service.title' %></a></li>
<li class='nav-item-privacy'><a href='<%= privacy_path %>' class='<%= @page == 'privacy' ? 'active' : '' %>'><%= t 'privacy' %></a></li> <li class='nav-item-privacy'><a href='<%= privacy_path %>' class='<%= @page == 'privacy' ? 'active' : '' %>'><%= t 'privacy' %></a></li>
</ul> </ul>

View File

@ -94,6 +94,38 @@ describe StaticController do
xhr :get, :show, id: 'login' xhr :get, :show, id: 'login'
expect(response).to be_success expect(response).to be_success
end end
context "when login_required is enabled" do
before do
SiteSetting.login_required = true
end
it 'faq page redirects to login page for anon' do
xhr :get, :show, id: 'faq'
expect(response).to redirect_to '/login'
end
it 'guidelines page redirects to login page for anon' do
xhr :get, :show, id: 'guidelines'
expect(response).to redirect_to '/login'
end
it 'faq page loads for logged in user' do
log_in
xhr :get, :show, id: 'faq'
expect(response).to be_success
expect(response).to render_template('static/show')
expect(assigns(:page)).to eq('faq')
end
it 'guidelines page loads for logged in user' do
log_in
xhr :get, :show, id: 'guidelines'
expect(response).to be_success
expect(response).to render_template('static/show')
expect(assigns(:page)).to eq('faq')
end
end
end end
describe '#enter' do describe '#enter' do