Commit 4a49a937 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Allow to specify home page for non logged-in users

parent 4fcc3d6b
...@@ -26,6 +26,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController ...@@ -26,6 +26,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
:signin_enabled, :signin_enabled,
:gravatar_enabled, :gravatar_enabled,
:sign_in_text, :sign_in_text,
:home_page_url
) )
end end
end end
...@@ -48,6 +48,17 @@ class ApplicationController < ActionController::Base ...@@ -48,6 +48,17 @@ class ApplicationController < ActionController::Base
end end
end end
def authenticate_user!
# If user is not signe-in and tries to access root_path - redirect him to landing page
if current_application_settings.home_page_url.present?
if current_user.nil? && controller_name == 'dashboard' && action_name == 'show'
redirect_to current_application_settings.home_page_url and return
end
end
super
end
def log_exception(exception) def log_exception(exception)
application_trace = ActionDispatch::ExceptionWrapper.new(env, exception).application_trace application_trace = ActionDispatch::ExceptionWrapper.new(env, exception).application_trace
application_trace.map!{ |t| " #{t}\n" } application_trace.map!{ |t| " #{t}\n" }
......
...@@ -305,9 +305,4 @@ module ApplicationHelper ...@@ -305,9 +305,4 @@ module ApplicationHelper
profile_key_path(key) profile_key_path(key)
end end
end end
def redirect_from_root?
request.env['rack.session']['user_return_to'] ==
'/'
end
end end
class ApplicationSetting < ActiveRecord::Base class ApplicationSetting < ActiveRecord::Base
validates :home_page_url, allow_blank: true,
format: { with: URI::regexp(%w(http https)), message: "should be a valid url" }
def self.current def self.current
ApplicationSetting.last ApplicationSetting.last
end end
......
...@@ -25,6 +25,10 @@ ...@@ -25,6 +25,10 @@
= f.label :default_projects_limit, class: 'control-label' = f.label :default_projects_limit, class: 'control-label'
.col-sm-10 .col-sm-10
= f.number_field :default_projects_limit, class: 'form-control' = f.number_field :default_projects_limit, class: 'form-control'
.form-group
= f.label :home_page_url, class: 'control-label'
.col-sm-10
= f.text_field :home_page_url, class: 'form-control', placeholder: 'http://company.example.com'
.form-group .form-group
= f.label :sign_in_text, class: 'control-label' = f.label :sign_in_text, class: 'control-label'
.col-sm-10 .col-sm-10
......
...@@ -6,8 +6,7 @@ ...@@ -6,8 +6,7 @@
= render "layouts/public_head_panel", title: '' = render "layouts/public_head_panel", title: ''
.container.navless-container .container.navless-container
.content .content
- unless redirect_from_root? = render "layouts/flash"
= render "layouts/flash"
.row.prepend-top-20 .row.prepend-top-20
.col-sm-5.pull-right .col-sm-5.pull-right
= yield = yield
......
class AddHomePageUrlForApplicationSettings < ActiveRecord::Migration
def change
add_column :application_settings, :home_page_url, :string
end
end
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20150108073740) do ActiveRecord::Schema.define(version: 20150116234544) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
...@@ -24,6 +24,7 @@ ActiveRecord::Schema.define(version: 20150108073740) do ...@@ -24,6 +24,7 @@ ActiveRecord::Schema.define(version: 20150108073740) do
t.text "sign_in_text" t.text "sign_in_text"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.string "home_page_url"
end end
create_table "broadcast_messages", force: true do |t| create_table "broadcast_messages", force: true do |t|
...@@ -423,6 +424,7 @@ ActiveRecord::Schema.define(version: 20150108073740) do ...@@ -423,6 +424,7 @@ ActiveRecord::Schema.define(version: 20150108073740) do
t.integer "notification_level", default: 1, null: false t.integer "notification_level", default: 1, null: false
t.datetime "password_expires_at" t.datetime "password_expires_at"
t.integer "created_by_id" t.integer "created_by_id"
t.datetime "last_credential_check_at"
t.string "avatar" t.string "avatar"
t.string "confirmation_token" t.string "confirmation_token"
t.datetime "confirmed_at" t.datetime "confirmed_at"
...@@ -430,7 +432,6 @@ ActiveRecord::Schema.define(version: 20150108073740) do ...@@ -430,7 +432,6 @@ ActiveRecord::Schema.define(version: 20150108073740) do
t.string "unconfirmed_email" t.string "unconfirmed_email"
t.boolean "hide_no_ssh_key", default: false t.boolean "hide_no_ssh_key", default: false
t.string "website_url", default: "", null: false t.string "website_url", default: "", null: false
t.datetime "last_credential_check_at"
t.string "github_access_token" t.string "github_access_token"
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment