Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
iv
gitlab-ce
Commits
57a65ede
Commit
57a65ede
authored
9 years ago
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve application settings and write tests
parent
8589b4e1
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
123 additions
and
77 deletions
+123
-77
app/controllers/admin/application_settings_controller.rb
app/controllers/admin/application_settings_controller.rb
+6
-6
app/controllers/application_controller.rb
app/controllers/application_controller.rb
+3
-1
app/controllers/registrations_controller.rb
app/controllers/registrations_controller.rb
+2
-2
app/controllers/sessions_controller.rb
app/controllers/sessions_controller.rb
+11
-11
app/helpers/application_helper.rb
app/helpers/application_helper.rb
+0
-8
app/helpers/application_settings_helper.rb
app/helpers/application_settings_helper.rb
+11
-0
app/models/user.rb
app/models/user.rb
+3
-2
app/services/base_service.rb
app/services/base_service.rb
+6
-0
app/services/gravatar_service.rb
app/services/gravatar_service.rb
+3
-1
app/views/admin/application_settings/_form.html.haml
app/views/admin/application_settings/_form.html.haml
+24
-20
app/views/admin/application_settings/edit.html.haml
app/views/admin/application_settings/edit.html.haml
+0
-5
app/views/admin/application_settings/show.html.haml
app/views/admin/application_settings/show.html.haml
+3
-18
app/views/layouts/devise.html.haml
app/views/layouts/devise.html.haml
+2
-2
app/views/layouts/nav/_admin.html.haml
app/views/layouts/nav/_admin.html.haml
+5
-0
config/routes.rb
config/routes.rb
+1
-1
features/admin/settings.feature
features/admin/settings.feature
+9
-0
features/steps/admin/settings.rb
features/steps/admin/settings.rb
+16
-0
features/steps/shared/paths.rb
features/steps/shared/paths.rb
+4
-0
lib/gitlab/current_settings.rb
lib/gitlab/current_settings.rb
+7
-0
spec/models/application_setting_spec.rb
spec/models/application_setting_spec.rb
+7
-0
No files found.
app/controllers/admin/application_settings_controller.rb
View file @
57a65ede
...
...
@@ -4,13 +4,13 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
def
show
end
def
edit
end
def
update
@application_setting
.
update_attributes
(
application_setting_params
)
redirect_to
admin_application_settings_path
if
@application_setting
.
update_attributes
(
application_setting_params
)
redirect_to
admin_application_settings_path
,
notice:
'Application settings saved successfully'
else
render
:show
end
end
private
...
...
This diff is collapsed.
Click to expand it.
app/controllers/application_controller.rb
View file @
57a65ede
require
'gon'
class
ApplicationController
<
ActionController
::
Base
include
Gitlab
::
CurrentSettings
before_filter
:authenticate_user_from_token!
before_filter
:authenticate_user!
before_filter
:reject_blocked!
...
...
@@ -13,7 +15,7 @@ class ApplicationController < ActionController::Base
protect_from_forgery
with: :exception
helper_method
:abilities
,
:can?
helper_method
:abilities
,
:can?
,
:current_application_settings
rescue_from
Encoding
::
CompatibilityError
do
|
exception
|
log_exception
(
exception
)
...
...
This diff is collapsed.
Click to expand it.
app/controllers/registrations_controller.rb
View file @
57a65ede
...
...
@@ -26,8 +26,8 @@ class RegistrationsController < Devise::RegistrationsController
private
def
signup_enabled?
unless
ApplicationSetting
.
current
.
signup_enabled
redirect_to
new_user_session_path
if
current_application_settings
.
signup_enabled?
redirect_to
(
new_user_session_path
)
end
end
...
...
This diff is collapsed.
Click to expand it.
app/controllers/sessions_controller.rb
View file @
57a65ede
class
SessionsController
<
Devise
::
SessionsController
def
new
redirect_path
=
if
request
.
referer
.
present?
&&
(
params
[
'redirect_to_referer'
]
==
'yes'
)
referer_uri
=
URI
(
request
.
referer
)
if
referer_uri
.
host
==
Gitlab
.
config
.
gitlab
.
host
referer_uri
.
path
else
request
.
fullpath
end
else
request
.
fullpath
end
redirect_path
=
if
request
.
referer
.
present?
&&
(
params
[
'redirect_to_referer'
]
==
'yes'
)
referer_uri
=
URI
(
request
.
referer
)
if
referer_uri
.
host
==
Gitlab
.
config
.
gitlab
.
host
referer_uri
.
path
else
request
.
fullpath
end
else
request
.
fullpath
end
# Prevent a 'you are already signed in' message directly after signing:
# we should never redirect to '/users/sign_in' after signing in successfully.
...
...
This diff is collapsed.
Click to expand it.
app/helpers/application_helper.rb
View file @
57a65ede
...
...
@@ -310,12 +310,4 @@ module ApplicationHelper
request
.
env
[
'rack.session'
][
'user_return_to'
]
==
'/'
end
def
signup_enabled?
ApplicationSetting
.
current
.
signup_enabled
end
def
signin_enabled?
ApplicationSetting
.
current
.
signin_enabled
end
end
This diff is collapsed.
Click to expand it.
app/helpers/application_settings_helper.rb
View file @
57a65ede
module
ApplicationSettingsHelper
def
signup_enabled?
current_application_settings
.
signup_enabled
end
def
signin_enabled?
current_application_settings
.
signin_enabled
end
def
extra_sign_in_text
current_application_settings
.
sign_in_text
end
end
This diff is collapsed.
Click to expand it.
app/models/user.rb
View file @
57a65ede
...
...
@@ -51,14 +51,15 @@ require 'file_size_validator'
class
User
<
ActiveRecord
::
Base
include
Gitlab
::
ConfigHelper
extend
Gitlab
::
ConfigHelper
include
TokenAuthenticatable
extend
Gitlab
::
ConfigHelper
extend
Gitlab
::
CurrentSettings
default_value_for
:admin
,
false
default_value_for
:can_create_group
,
gitlab_config
.
default_can_create_group
default_value_for
:can_create_team
,
false
default_value_for
:hide_no_ssh_key
,
false
default_value_for
:projects_limit
,
gitlab_config
.
default_projects_limit
default_value_for
:projects_limit
,
current_application_settings
.
default_projects_limit
default_value_for
:theme_id
,
gitlab_config
.
default_theme
devise
:database_authenticatable
,
:lockable
,
:async
,
...
...
This diff is collapsed.
Click to expand it.
app/services/base_service.rb
View file @
57a65ede
class
BaseService
include
Gitlab
::
CurrentSettings
attr_accessor
:project
,
:current_user
,
:params
def
initialize
(
project
,
user
,
params
=
{})
...
...
@@ -29,6 +31,10 @@ class BaseService
SystemHooksService
.
new
end
def
current_application_settings
ApplicationSetting
.
current
end
private
def
error
(
message
)
...
...
This diff is collapsed.
Click to expand it.
app/services/gravatar_service.rb
View file @
57a65ede
class
GravatarService
include
Gitlab
::
CurrentSettings
def
execute
(
email
,
size
=
nil
)
if
ApplicationSetting
.
current
.
gravatar_enabled
&&
email
.
present?
if
current_application_settings
.
gravatar_enabled?
&&
email
.
present?
size
=
40
if
size
.
nil?
||
size
<=
0
sprintf
gravatar_url
,
...
...
This diff is collapsed.
Click to expand it.
app/views/admin/application_settings/_form.html.haml
View file @
57a65ede
...
...
@@ -5,25 +5,29 @@
-
@application_setting
.
errors
.
full_messages
.
each
do
|
msg
|
%p
=
msg
.form-group
=
f
.
label
:default_projects_limit
,
class:
'control-label'
.col-sm-10
=
f
.
number_field
:default_projects_limit
,
class:
'form-control'
.form-group
=
f
.
label
:signup_enabled
,
class:
'control-label'
.col-sm-10
=
f
.
check_box
:signup_enabled
,
class:
'checkbox'
.form-group
=
f
.
label
:signin_enabled
,
class:
'control-label'
.col-sm-10
=
f
.
check_box
:signin_enabled
,
class:
'checkbox'
.form-group
=
f
.
label
:gravatar_enabled
,
class:
'control-label'
.col-sm-10
=
f
.
check_box
:gravatar_enabled
,
class:
'checkbox'
.form-group
=
f
.
label
:sign_in_text
,
class:
'control-label'
.col-sm-10
=
f
.
text_area
:sign_in_text
,
class:
'form-control'
%fieldset
%legend
Features
.form-group
=
f
.
label
:signup_enabled
,
class:
'control-label'
.col-sm-10
=
f
.
check_box
:signup_enabled
,
class:
'checkbox'
.form-group
=
f
.
label
:signin_enabled
,
class:
'control-label'
.col-sm-10
=
f
.
check_box
:signin_enabled
,
class:
'checkbox'
.form-group
=
f
.
label
:gravatar_enabled
,
class:
'control-label'
.col-sm-10
=
f
.
check_box
:gravatar_enabled
,
class:
'checkbox'
%fieldset
%legend
Misc
.form-group
=
f
.
label
:default_projects_limit
,
class:
'control-label'
.col-sm-10
=
f
.
number_field
:default_projects_limit
,
class:
'form-control'
.form-group
=
f
.
label
:sign_in_text
,
class:
'control-label'
.col-sm-10
=
f
.
text_area
:sign_in_text
,
class:
'form-control'
.form-actions
=
f
.
submit
'Save'
,
class:
'btn btn-primary'
This diff is collapsed.
Click to expand it.
app/views/admin/application_settings/edit.html.haml
deleted
100644 → 0
View file @
8589b4e1
%h1
Editing application_setting
=
render
'form'
=
link_to
'Back'
,
admin_application_settings_path
This diff is collapsed.
Click to expand it.
app/views/admin/application_settings/show.html.haml
View file @
57a65ede
%table
.table
%tr
%td
Default projects limit:
%td
=
@application_setting
.
default_projects_limit
%tr
%td
Signup enabled:
%td
=
@application_setting
.
signup_enabled
%tr
%td
Signin enabled:
%td
=
@application_setting
.
signin_enabled
%tr
%td
Gravatar enabled:
%td
=
@application_setting
.
gravatar_enabled
%tr
%td
Sign in text:
%td
=
@application_setting
.
sign_in_text
=
link_to
'Edit'
,
edit_admin_application_settings_path
%h3
.page-title
Application settings
%hr
=
render
'form'
This diff is collapsed.
Click to expand it.
app/views/layouts/devise.html.haml
View file @
57a65ede
...
...
@@ -25,8 +25,8 @@
Perform code reviews and enhance collaboration with merge requests.
Each project can also have an issue tracker and a wiki.
-
if
extra_
config
.
has_key?
(
'sign_in_text'
)
=
markdown
(
extra_
config
.
sign_in_text
)
-
if
extra_
sign_in_text
.
present?
=
markdown
(
extra_sign_in_text
)
%hr
.container
...
...
This diff is collapsed.
Click to expand it.
app/views/layouts/nav/_admin.html.haml
View file @
57a65ede
...
...
@@ -40,3 +40,8 @@
%span
Background Jobs
=
nav_link
(
controller: :application_settings
)
do
=
link_to
admin_application_settings_path
do
%i
.fa.fa-cogs
%span
Settings
This diff is collapsed.
Click to expand it.
config/routes.rb
View file @
57a65ede
...
...
@@ -109,7 +109,7 @@ Gitlab::Application.routes.draw do
end
end
resource
:application_settings
resource
:application_settings
,
only:
[
:show
,
:update
]
root
to:
"dashboard#index"
end
...
...
This diff is collapsed.
Click to expand it.
features/admin/settings.feature
0 → 100644
View file @
57a65ede
@admin
Feature
:
Admin Settings
Background
:
Given
I sign in as an admin
And
I visit admin settings page
Scenario
:
Change application settings
When
I disable gravatars and save form
Then
I should be see gravatar disabled
This diff is collapsed.
Click to expand it.
features/steps/admin/settings.rb
0 → 100644
View file @
57a65ede
class
Spinach::Features::AdminSettings
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedPaths
include
SharedAdmin
include
Gitlab
::
CurrentSettings
step
'I disable gravatars and save form'
do
uncheck
'Gravatar enabled'
click_button
'Save'
end
step
'I should be see gravatar disabled'
do
current_application_settings
.
gravatar_enabled
.
should
be_false
page
.
should
have_content
'Application settings saved successfully'
end
end
This diff is collapsed.
Click to expand it.
features/steps/shared/paths.rb
View file @
57a65ede
...
...
@@ -167,6 +167,10 @@ module SharedPaths
visit
admin_teams_path
end
step
'I visit admin settings page'
do
visit
admin_application_settings_path
end
# ----------------------------------------
# Generic Project
# ----------------------------------------
...
...
This diff is collapsed.
Click to expand it.
lib/gitlab/current_settings.rb
0 → 100644
View file @
57a65ede
module
Gitlab
module
CurrentSettings
def
current_application_settings
ApplicationSetting
.
current
end
end
end
This diff is collapsed.
Click to expand it.
spec/models/application_setting_spec.rb
0 → 100644
View file @
57a65ede
require
'spec_helper'
describe
ApplicationSetting
,
models:
true
do
describe
'should exists on start'
do
it
{
ApplicationSetting
.
count
.
should_not
be_zero
}
end
end
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment