diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-01-17 03:01:15 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-01-17 06:39:02 +0300 |
commit | 4a49a937cdac3beb8e00373accfc5873e0d51b37 (patch) | |
tree | d89a1ebd65bd0aeb2978444ad16769e3db36c1b7 /app | |
parent | 4fcc3d6b6b67cb9e2db11cd77d783a155d1237c6 (diff) |
Allow to specify home page for non logged-in users
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/admin/application_settings_controller.rb | 1 | ||||
-rw-r--r-- | app/controllers/application_controller.rb | 11 | ||||
-rw-r--r-- | app/helpers/application_helper.rb | 5 | ||||
-rw-r--r-- | app/models/application_setting.rb | 3 | ||||
-rw-r--r-- | app/views/admin/application_settings/_form.html.haml | 4 | ||||
-rw-r--r-- | app/views/layouts/devise.html.haml | 3 |
6 files changed, 20 insertions, 7 deletions
diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb index 5116f1f177a..a937f484877 100644 --- a/app/controllers/admin/application_settings_controller.rb +++ b/app/controllers/admin/application_settings_controller.rb @@ -26,6 +26,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController :signin_enabled, :gravatar_enabled, :sign_in_text, + :home_page_url ) end end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index b83de68c5d2..4780a7a2a9a 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -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" } diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index f21b0bd1f50..092a1ba9229 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -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 diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index 47fa6f1071c..d9c73559098 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -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 diff --git a/app/views/admin/application_settings/_form.html.haml b/app/views/admin/application_settings/_form.html.haml index 5ca9585e9a9..481e7882300 100644 --- a/app/views/admin/application_settings/_form.html.haml +++ b/app/views/admin/application_settings/_form.html.haml @@ -26,6 +26,10 @@ .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 = f.text_area :sign_in_text, class: 'form-control' diff --git a/app/views/layouts/devise.html.haml b/app/views/layouts/devise.html.haml index 857ebd9b8d9..6f805f1c9d1 100644 --- a/app/views/layouts/devise.html.haml +++ b/app/views/layouts/devise.html.haml @@ -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 |