summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/users_controller.rb6
-rw-r--r--app/controllers/v1/users_controller.rb8
-rw-r--r--app/views/common/_action_buttons.html.haml9
-rw-r--r--config/defaults.yml1
-rw-r--r--test/functional/users_controller_test.rb7
-rw-r--r--test/functional/v1/users_controller_test.rb8
6 files changed, 33 insertions, 6 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 5951413..a623653 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -26,7 +26,11 @@ class UsersController < UsersBaseController
end
def new
- @user = User.new
+ if APP_CONFIG[:allow_registration]
+ @user = User.new
+ else
+ redirect_to home_path
+ end
end
def show
diff --git a/app/controllers/v1/users_controller.rb b/app/controllers/v1/users_controller.rb
index 006e6d8..881708a 100644
--- a/app/controllers/v1/users_controller.rb
+++ b/app/controllers/v1/users_controller.rb
@@ -19,8 +19,12 @@ module V1
end
def create
- @user = Account.create(params[:user])
- respond_with @user # return ID instead?
+ if APP_CONFIG[:allow_registration]
+ @user = Account.create(params[:user])
+ respond_with @user # return ID instead?
+ else
+ head :forbidden
+ end
end
def update
diff --git a/app/views/common/_action_buttons.html.haml b/app/views/common/_action_buttons.html.haml
index 266abe1..81ebf67 100644
--- a/app/views/common/_action_buttons.html.haml
+++ b/app/views/common/_action_buttons.html.haml
@@ -3,9 +3,12 @@
.login.span4
%span.link= btn icon('ok-sign') + t(:login), login_path
%span.info= t(:login_info, default: "")
- .signup.span4
- %span.link= btn icon('user') + t(:signup), signup_path
- %span.info= t(:signup_info, default: "")
+ - if APP_CONFIG[:allow_registration]
+ .signup.span4
+ %span.link= btn icon('user') + t(:signup), signup_path
+ %span.info= t(:signup_info, default: "")
+ - else
+ .signup.span4
.help.span4
%span.link= btn icon('question-sign') + t(:get_help), new_ticket_path
%span.info= t(:support_info, default: "")
diff --git a/config/defaults.yml b/config/defaults.yml
index 0614d1e..42c7be9 100644
--- a/config/defaults.yml
+++ b/config/defaults.yml
@@ -49,6 +49,7 @@ common: &common
engines:
- support
- billing
+ allow_registration: true
service_levels: &service_levels
service_levels:
diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb
index 0713836..4af9ca6 100644
--- a/test/functional/users_controller_test.rb
+++ b/test/functional/users_controller_test.rb
@@ -162,4 +162,11 @@ class UsersControllerTest < ActionController::TestCase
assert !assigns(:user).enabled?
end
+ test "new redirects if registration is closed" do
+ with_config(allow_registration: false) do
+ get :new
+ assert_response :redirect
+ assert_redirected_to home_path
+ end
+ end
end
diff --git a/test/functional/v1/users_controller_test.rb b/test/functional/v1/users_controller_test.rb
index 7cd9b0c..fe3cfe7 100644
--- a/test/functional/v1/users_controller_test.rb
+++ b/test/functional/v1/users_controller_test.rb
@@ -71,4 +71,12 @@ class V1::UsersControllerTest < ActionController::TestCase
assert assigns(:users)
end
+ test "create returns forbidden if registration is closed" do
+ user_attribs = record_attributes_for :user
+ with_config(allow_registration: false) do
+ post :create, :user => user_attribs, :format => :json
+ assert_response :forbidden
+ end
+ end
+
end