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
:signin_enabled,
:gravatar_enabled,
:sign_in_text,
:home_page_url
)
end
end
......@@ -48,6 +48,17 @@ class ApplicationController < ActionController::Base
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)
application_trace = ActionDispatch::ExceptionWrapper.new(env, exception).application_trace
application_trace.map!{ |t| " #{t}\n" }
......
......@@ -305,9 +305,4 @@ module ApplicationHelper
profile_key_path(key)
end
end
def redirect_from_root?
request.env['rack.session']['user_return_to'] ==
'/'
end
end
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
ApplicationSetting.last
end
......
......@@ -25,6 +25,10 @@
= f.label :default_projects_limit, class: 'control-label'
.col-sm-10
= 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
= f.label :sign_in_text, class: 'control-label'
.col-sm-10
......
......@@ -6,7 +6,6 @@
= render "layouts/public_head_panel", title: ''
.container.navless-container
.content
- unless redirect_from_root?
= render "layouts/flash"
.row.prepend-top-20
.col-sm-5.pull-right
......
class AddHomePageUrlForApplicationSettings < ActiveRecord::Migration
def change
add_column :application_settings, :home_page_url, :string
end
end
......@@ -11,7 +11,7 @@
#
# 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
enable_extension "plpgsql"
......@@ -24,6 +24,7 @@ ActiveRecord::Schema.define(version: 20150108073740) do
t.text "sign_in_text"
t.datetime "created_at"
t.datetime "updated_at"
t.string "home_page_url"
end
create_table "broadcast_messages", force: true do |t|
......@@ -423,6 +424,7 @@ ActiveRecord::Schema.define(version: 20150108073740) do
t.integer "notification_level", default: 1, null: false
t.datetime "password_expires_at"
t.integer "created_by_id"
t.datetime "last_credential_check_at"
t.string "avatar"
t.string "confirmation_token"
t.datetime "confirmed_at"
......@@ -430,7 +432,6 @@ ActiveRecord::Schema.define(version: 20150108073740) do
t.string "unconfirmed_email"
t.boolean "hide_no_ssh_key", default: false
t.string "website_url", default: "", null: false
t.datetime "last_credential_check_at"
t.string "github_access_token"
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