From 60225a067dd69e047088dc73f1227fce071311e3 Mon Sep 17 00:00:00 2001 From: Alex Lossent Date: Fri, 29 May 2015 17:42:27 +0200 Subject: [PATCH] Allow to configure a URL to show after sign out --- CHANGELOG | 1 + app/controllers/admin/application_settings_controller.rb | 1 + app/controllers/application_controller.rb | 2 +- app/models/application_setting.rb | 5 +++++ app/views/admin/application_settings/_form.html.haml | 5 +++++ ...50354_add_after_sign_out_path_for_application_settings.rb | 5 +++++ db/schema.rb | 3 ++- 7 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20150529150354_add_after_sign_out_path_for_application_settings.rb diff --git a/CHANGELOG b/CHANGELOG index 66d23dcfd4f..318d359de99 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -34,6 +34,7 @@ v 7.12.0 (unreleased) - You can not remove user if he/she is an only owner of group - User should be able to leave group. If not - show him proper message - User has ability to leave project + - Allow to configure a URL to show after sign out v 7.11.4 - Fix missing bullets when creating lists diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb index 5aaae94e6bf..a01e2a907d7 100644 --- a/app/controllers/admin/application_settings_controller.rb +++ b/app/controllers/admin/application_settings_controller.rb @@ -38,6 +38,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController :twitter_sharing_enabled, :sign_in_text, :home_page_url, + :after_sign_out_path, :max_attachment_size, :default_project_visibility, :default_snippet_visibility, diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index e5da94b2327..62d46a5482e 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -89,7 +89,7 @@ class ApplicationController < ActionController::Base end def after_sign_out_path_for(resource) - new_user_session_path + current_application_settings.after_sign_out_path || new_user_session_path end def abilities diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index c465158f764..80463ee8841 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -19,6 +19,7 @@ # default_snippet_visibility :integer # restricted_signup_domains :text # user_oauth_applications :bool default(TRUE) +# after_sign_out_path :string(255) # class ApplicationSetting < ActiveRecord::Base @@ -31,6 +32,10 @@ class ApplicationSetting < ActiveRecord::Base format: { with: /\A#{URI.regexp(%w(http https))}\z/, message: "should be a valid url" }, if: :home_page_url_column_exist + validates :after_sign_out_path, + allow_blank: true, + format: { with: /\A#{URI.regexp(%w(http https))}\z/, message: "should be a valid url" } + validates_each :restricted_visibility_levels do |record, attr, value| unless value.nil? value.each do |level| diff --git a/app/views/admin/application_settings/_form.html.haml b/app/views/admin/application_settings/_form.html.haml index dd8978647c4..188a08940ab 100644 --- a/app/views/admin/application_settings/_form.html.haml +++ b/app/views/admin/application_settings/_form.html.haml @@ -69,6 +69,11 @@ .col-sm-10 = f.text_field :home_page_url, class: 'form-control', placeholder: 'http://company.example.com', :'aria-describedby' => 'home_help_block' %span.help-block#home_help_block We will redirect non-logged in users to this page + .form-group + = f.label :after_sign_out_path, class: 'control-label col-sm-2' + .col-sm-10 + = f.text_field :after_sign_out_path, class: 'form-control', placeholder: 'http://company.example.com', :'aria-describedby' => 'after_sign_out_path_help_block' + %span.help-block#after_sign_out_path_help_block We will redirect users to this page after they sign out .form-group = f.label :sign_in_text, class: 'control-label col-sm-2' .col-sm-10 diff --git a/db/migrate/20150529150354_add_after_sign_out_path_for_application_settings.rb b/db/migrate/20150529150354_add_after_sign_out_path_for_application_settings.rb new file mode 100644 index 00000000000..83e08101407 --- /dev/null +++ b/db/migrate/20150529150354_add_after_sign_out_path_for_application_settings.rb @@ -0,0 +1,5 @@ +class AddAfterSignOutPathForApplicationSettings < ActiveRecord::Migration + def change + add_column :application_settings, :after_sign_out_path, :string + end +end \ No newline at end of file diff --git a/db/schema.rb b/db/schema.rb index dfd93d056e9..aea0742cf3b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150529111607) do +ActiveRecord::Schema.define(version: 20150529150354) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -34,6 +34,7 @@ ActiveRecord::Schema.define(version: 20150529111607) do t.integer "default_snippet_visibility" t.text "restricted_signup_domains" t.boolean "user_oauth_applications", default: true + t.string "after_sign_out_path" end create_table "broadcast_messages", force: true do |t|