Commit b862998b authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'feature/sign_out_page' into 'master'

Allow to configure a URL to show after sign out

Split of !669 as requested

This is especially useful with SAML ( !722 ) since the omniauth-saml gem does not support single log-out. This provides a way to log out the user from the SAML IdP after signing out from GitLab.

See merge request !725
parents 584ac316 60225a06
...@@ -35,6 +35,7 @@ v 7.12.0 (unreleased) ...@@ -35,6 +35,7 @@ v 7.12.0 (unreleased)
- User should be able to leave group. If not - show him proper message - User should be able to leave group. If not - show him proper message
- User has ability to leave project - User has ability to leave project
- Add SAML support as an omniauth provider - Add SAML support as an omniauth provider
- Allow to configure a URL to show after sign out
v 7.11.4 v 7.11.4
- Fix missing bullets when creating lists - Fix missing bullets when creating lists
......
...@@ -38,6 +38,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController ...@@ -38,6 +38,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
:twitter_sharing_enabled, :twitter_sharing_enabled,
:sign_in_text, :sign_in_text,
:home_page_url, :home_page_url,
:after_sign_out_path,
:max_attachment_size, :max_attachment_size,
:default_project_visibility, :default_project_visibility,
:default_snippet_visibility, :default_snippet_visibility,
......
...@@ -89,7 +89,7 @@ class ApplicationController < ActionController::Base ...@@ -89,7 +89,7 @@ class ApplicationController < ActionController::Base
end end
def after_sign_out_path_for(resource) def after_sign_out_path_for(resource)
new_user_session_path current_application_settings.after_sign_out_path || new_user_session_path
end end
def abilities def abilities
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
# default_snippet_visibility :integer # default_snippet_visibility :integer
# restricted_signup_domains :text # restricted_signup_domains :text
# user_oauth_applications :bool default(TRUE) # user_oauth_applications :bool default(TRUE)
# after_sign_out_path :string(255)
# #
class ApplicationSetting < ActiveRecord::Base class ApplicationSetting < ActiveRecord::Base
...@@ -31,6 +32,10 @@ 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" }, format: { with: /\A#{URI.regexp(%w(http https))}\z/, message: "should be a valid url" },
if: :home_page_url_column_exist 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| validates_each :restricted_visibility_levels do |record, attr, value|
unless value.nil? unless value.nil?
value.each do |level| value.each do |level|
......
...@@ -69,6 +69,11 @@ ...@@ -69,6 +69,11 @@
.col-sm-10 .col-sm-10
= f.text_field :home_page_url, class: 'form-control', placeholder: 'http://company.example.com', :'aria-describedby' => 'home_help_block' = 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 %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 .form-group
= f.label :sign_in_text, class: 'control-label col-sm-2' = f.label :sign_in_text, class: 'control-label col-sm-2'
.col-sm-10 .col-sm-10
......
class AddAfterSignOutPathForApplicationSettings < ActiveRecord::Migration
def change
add_column :application_settings, :after_sign_out_path, :string
end
end
\ No newline at end of file
...@@ -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: 20150529111607) do ActiveRecord::Schema.define(version: 20150529150354) 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"
...@@ -34,6 +34,7 @@ ActiveRecord::Schema.define(version: 20150529111607) do ...@@ -34,6 +34,7 @@ ActiveRecord::Schema.define(version: 20150529111607) do
t.integer "default_snippet_visibility" t.integer "default_snippet_visibility"
t.text "restricted_signup_domains" t.text "restricted_signup_domains"
t.boolean "user_oauth_applications", default: true t.boolean "user_oauth_applications", default: true
t.string "after_sign_out_path"
end end
create_table "broadcast_messages", force: true do |t| create_table "broadcast_messages", force: true do |t|
......
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