0
0
Fork 0

New admin setting: open/close registrations, with custom message, from the admin UI

This commit is contained in:
Eugen Rochko 2017-04-04 15:26:57 +02:00
parent 405c495c23
commit 5f54981846
8 changed files with 70 additions and 21 deletions

View file

@ -4,7 +4,9 @@ class AboutController < ApplicationController
before_action :set_body_classes
def index
@description = Setting.site_description
@description = Setting.site_description
@open_registrations = Setting.open_registrations
@closed_registrations_message = Setting.closed_registrations_message
@user = User.new
@user.build_account

View file

@ -11,9 +11,13 @@ class Admin::SettingsController < ApplicationController
def update
@setting = Setting.where(var: params[:id]).first_or_initialize(var: params[:id])
value = settings_params[:value]
if @setting.value != params[:setting][:value]
@setting.value = params[:setting][:value]
# Special cases
value = value == 'true' if @setting.var == 'open_registrations'
if @setting.value != value
@setting.value = value
@setting.save
end
@ -22,4 +26,10 @@ class Admin::SettingsController < ApplicationController
format.json { respond_with_bip(@setting) }
end
end
private
def settings_params
params.require(:setting).permit(:value)
end
end

View file

@ -3,7 +3,7 @@
class Auth::RegistrationsController < Devise::RegistrationsController
layout :determine_layout
before_action :check_single_user_mode
before_action :check_enabled_registrations, only: [:new, :create]
before_action :configure_sign_up_params, only: [:create]
protected
@ -27,12 +27,12 @@ class Auth::RegistrationsController < Devise::RegistrationsController
new_user_session_path
end
def check_single_user_mode
redirect_to root_path if Rails.configuration.x.single_user_mode
def check_enabled_registrations
redirect_to root_path if Rails.configuration.x.single_user_mode || !Setting.open_registrations
end
private
def determine_layout
%w(edit update).include?(action_name) ? 'admin' : 'auth'
end