Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/stylesheets/sections/nav_sidebar.scss20
-rw-r--r--app/controllers/admin/application_settings_controller.rb1
-rw-r--r--app/controllers/application_controller.rb11
-rw-r--r--app/helpers/application_helper.rb5
-rw-r--r--app/models/application_setting.rb8
-rw-r--r--app/views/admin/application_settings/_form.html.haml5
-rw-r--r--app/views/layouts/devise.html.haml3
-rw-r--r--config/initializers/1_settings.rb2
-rw-r--r--db/migrate/20150116234544_add_home_page_url_for_application_settings.rb5
-rw-r--r--db/schema.rb3
-rw-r--r--features/admin/settings.feature4
-rw-r--r--features/steps/admin/settings.rb6
12 files changed, 48 insertions, 25 deletions
diff --git a/app/assets/stylesheets/sections/nav_sidebar.scss b/app/assets/stylesheets/sections/nav_sidebar.scss
index edb5f90813f..dc1a889ed5f 100644
--- a/app/assets/stylesheets/sections/nav_sidebar.scss
+++ b/app/assets/stylesheets/sections/nav_sidebar.scss
@@ -1,5 +1,13 @@
.page-with-sidebar {
background: #F5F5F5;
+
+ .sidebar-wrapper {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ border-right: 1px solid #EAEAEA;
+ }
}
.sidebar-wrapper {
@@ -97,11 +105,6 @@
.sidebar-wrapper {
width: 250px;
- position: fixed;
- left: 250px;
- height: 100%;
- margin-left: -250px;
- border-right: 1px solid #EAEAEA;
.nav-sidebar {
margin-top: 20px;
@@ -123,11 +126,6 @@
.sidebar-wrapper {
width: 52px;
- position: fixed;
- top: 0;
- left: 0;
- height: 100%;
- border-right: 1px solid #EAEAEA;
overflow-x: hidden;
.nav-sidebar {
@@ -157,5 +155,3 @@
@media(min-width: $screen-sm-max) {
@include expanded-sidebar;
}
-
-
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..6da4f91c3f4 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!(*args)
+ # 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(*args)
+ 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..aed4068f309 100644
--- a/app/models/application_setting.rb
+++ b/app/models/application_setting.rb
@@ -1,4 +1,8 @@
class ApplicationSetting < ActiveRecord::Base
+ validates :home_page_url, allow_blank: true,
+ format: { with: URI::regexp(%w(http https)), message: "should be a valid url" },
+ if: :home_page_url_column_exist
+
def self.current
ApplicationSetting.last
end
@@ -12,4 +16,8 @@ class ApplicationSetting < ActiveRecord::Base
sign_in_text: Settings.extra['sign_in_text'],
)
end
+
+ def home_page_url_column_exist
+ ActiveRecord::Base.connection.column_exists?(:application_settings, :home_page_url)
+ end
end
diff --git a/app/views/admin/application_settings/_form.html.haml b/app/views/admin/application_settings/_form.html.haml
index 5ca9585e9a9..9423a207068 100644
--- a/app/views/admin/application_settings/_form.html.haml
+++ b/app/views/admin/application_settings/_form.html.haml
@@ -26,6 +26,11 @@
.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'
+ %span.help-block We will redirect non-logged in users to this page
+ .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
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 3685008bcb0..cdb958aa6a6 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -105,7 +105,7 @@ rescue ArgumentError # no user configured
'/home/' + Settings.gitlab['user']
end
Settings.gitlab['time_zone'] ||= nil
-Settings.gitlab['signup_enabled'] ||= true
+Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
Settings.gitlab['signin_enabled'] ||= true if Settings.gitlab['signin_enabled'].nil?
Settings.gitlab['restricted_visibility_levels'] = Settings.send(:verify_constant_array, Gitlab::VisibilityLevel, Settings.gitlab['restricted_visibility_levels'], [])
Settings.gitlab['username_changing_enabled'] = true if Settings.gitlab['username_changing_enabled'].nil?
diff --git a/db/migrate/20150116234544_add_home_page_url_for_application_settings.rb b/db/migrate/20150116234544_add_home_page_url_for_application_settings.rb
new file mode 100644
index 00000000000..aa179ce3a4d
--- /dev/null
+++ b/db/migrate/20150116234544_add_home_page_url_for_application_settings.rb
@@ -0,0 +1,5 @@
+class AddHomePageUrlForApplicationSettings < ActiveRecord::Migration
+ def change
+ add_column :application_settings, :home_page_url, :string
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index dedfce4797b..b453164d712 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: 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|
diff --git a/features/admin/settings.feature b/features/admin/settings.feature
index 8799c053ea2..8fdf0575c2c 100644
--- a/features/admin/settings.feature
+++ b/features/admin/settings.feature
@@ -5,5 +5,5 @@ Feature: Admin Settings
And I visit admin settings page
Scenario: Change application settings
- When I disable gravatars and save form
- Then I should be see gravatar disabled
+ When I modify settings and save form
+ Then I should see application settings saved
diff --git a/features/steps/admin/settings.rb b/features/steps/admin/settings.rb
index e8168e85def..c2d0d2a3fa3 100644
--- a/features/steps/admin/settings.rb
+++ b/features/steps/admin/settings.rb
@@ -4,13 +4,15 @@ class Spinach::Features::AdminSettings < Spinach::FeatureSteps
include SharedAdmin
include Gitlab::CurrentSettings
- step 'I disable gravatars and save form' do
+ step 'I modify settings and save form' do
uncheck 'Gravatar enabled'
+ fill_in 'Home page url', with: 'https://about.gitlab.com/'
click_button 'Save'
end
- step 'I should be see gravatar disabled' do
+ step 'I should see application settings saved' do
current_application_settings.gravatar_enabled.should be_false
+ current_application_settings.home_page_url.should == 'https://about.gitlab.com/'
page.should have_content 'Application settings saved successfully'
end
end