Allow to specify home page for non logged-in users
This commit is contained in:
parent
ada6c6080b
commit
41d7be3ce1
|
@ -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" }
|
||||
|
|
|
@ -292,9 +292,4 @@ module ApplicationHelper
|
|||
profile_key_path(key)
|
||||
end
|
||||
end
|
||||
|
||||
def redirect_from_root?
|
||||
request.env['rack.session']['user_return_to'] ==
|
||||
'/'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
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,8 +6,7 @@
|
|||
= render "layouts/public_head_panel", title: ''
|
||||
.container.navless-container
|
||||
.content
|
||||
- unless redirect_from_root?
|
||||
= render "layouts/flash"
|
||||
= render "layouts/flash"
|
||||
.row.prepend-top-20
|
||||
.col-sm-5.pull-right
|
||||
= yield
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
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
|
||||
|
||||
|
|
Loading…
Reference in New Issue