diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-07-06 13:47:05 +0200 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-08-03 15:43:27 +0200 |
commit | ed99139954489a5c8ebd41e20d9c34d777a7e165 (patch) | |
tree | ef3a020bfa690d5598de98084db8a4249f09ff60 | |
parent | 4f469a133d4a5990d8ee0cf81d770bb8db47b9b1 (diff) | |
download | gitlab-ci-ed99139954489a5c8ebd41e20d9c34d777a7e165.tar.gz |
Add session_expire_delay to Application Settings
-rw-r--r-- | app/controllers/admin/application_settings_controller.rb | 1 | ||||
-rw-r--r-- | app/models/application_setting.rb | 16 | ||||
-rw-r--r-- | app/views/admin/application_settings/_form.html.haml | 8 | ||||
-rw-r--r-- | config/initializers/session_store.rb | 4 | ||||
-rw-r--r-- | db/migrate/20150730103907_add_session_expire_delay_to_application_settings.rb | 5 | ||||
-rw-r--r-- | db/schema.rb | 3 | ||||
-rw-r--r-- | lib/current_settings.rb | 1 |
7 files changed, 32 insertions, 6 deletions
diff --git a/app/controllers/admin/application_settings_controller.rb b/app/controllers/admin/application_settings_controller.rb index 8f673b9..5f9ff7c 100644 --- a/app/controllers/admin/application_settings_controller.rb +++ b/app/controllers/admin/application_settings_controller.rb @@ -24,6 +24,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController params.require(:application_setting).permit( :all_broken_builds, :add_pusher, + :session_expire_delay, ) end end diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index f68f10a..12c6883 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -2,15 +2,20 @@ # # Table name: application_settings # -# id :integer not null, primary key -# all_broken_builds :boolean -# add_pusher :boolean -# created_at :datetime -# updated_at :datetime +# id :integer not null, primary key +# all_broken_builds :boolean +# add_pusher :boolean +# created_at :datetime +# updated_at :datetime +# session_expire_delay :integer default(10080), not null # class ApplicationSetting < ActiveRecord::Base + validates :session_expire_delay, + presence: true, + numericality: { only_integer: true, greater_than_or_equal_to: 0 } + def self.current ApplicationSetting.last end @@ -19,6 +24,7 @@ class ApplicationSetting < ActiveRecord::Base create( all_broken_builds: Settings.gitlab_ci['all_broken_builds'], add_pusher: Settings.gitlab_ci['add_pusher'], + session_expire_delay: Settings.gitlab_ci['session_expire_delay'], ) end diff --git a/app/views/admin/application_settings/_form.html.haml b/app/views/admin/application_settings/_form.html.haml index a767257..b396948 100644 --- a/app/views/admin/application_settings/_form.html.haml +++ b/app/views/admin/application_settings/_form.html.haml @@ -20,5 +20,13 @@ = f.check_box :add_pusher Add pusher to recipients list + %fieldset + %legend Account Settings + .form-group + = f.label :session_expire_delay, 'Session duration (minutes)', class: 'control-label col-sm-2' + .col-sm-10 + = f.number_field :session_expire_delay, class: 'form-control' + %span.help-block#session_expire_delay_help_block GitLab CI restart is required to apply changes + .form-actions = f.submit 'Save', class: 'btn btn-primary' diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb index 7ab8a9c..511c364 100644 --- a/config/initializers/session_store.rb +++ b/config/initializers/session_store.rb @@ -1,5 +1,9 @@ # Be sure to restart your server when you modify this file. +require 'current_settings' +include CurrentSettings +Settings.gitlab_ci['session_expire_delay'] = current_application_settings.session_expire_delay + # Use Redis caching across all environments redis_config_file = Rails.root.join('config', 'resque.yml') diff --git a/db/migrate/20150730103907_add_session_expire_delay_to_application_settings.rb b/db/migrate/20150730103907_add_session_expire_delay_to_application_settings.rb new file mode 100644 index 0000000..7d7f8ec --- /dev/null +++ b/db/migrate/20150730103907_add_session_expire_delay_to_application_settings.rb @@ -0,0 +1,5 @@ +class AddSessionExpireDelayToApplicationSettings < ActiveRecord::Migration + def change + add_column :application_settings, :session_expire_delay, :integer, default: 10080, null: false + end +end diff --git a/db/schema.rb b/db/schema.rb index e23f099..f423a51 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: 20150729145246) do +ActiveRecord::Schema.define(version: 20150730103907) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -21,6 +21,7 @@ ActiveRecord::Schema.define(version: 20150729145246) do t.boolean "add_pusher" t.datetime "created_at" t.datetime "updated_at" + t.integer "session_expire_delay", default: 10080, null: false end create_table "builds", force: true do |t| diff --git a/lib/current_settings.rb b/lib/current_settings.rb index 59dedfd..82c5692 100644 --- a/lib/current_settings.rb +++ b/lib/current_settings.rb @@ -15,6 +15,7 @@ module CurrentSettings OpenStruct.new( all_broken_builds: Settings.gitlab_ci['all_broken_builds'], add_pusher: Settings.gitlab_ci['add_pusher'], + session_expire_delay: Settings.gitlab_ci['session_expire_delay'], ) end end |