Merge branch 'master' into improve-registrar-access-denied-page

# Conflicts:
#	config/locales/en.yml
This commit is contained in:
Artur Beljajev 2017-10-09 02:14:22 +03:00
commit 62fbeadf34
16 changed files with 199 additions and 187 deletions

View file

@ -1,7 +1,6 @@
module Admin
class SettingsController < BaseController
load_and_authorize_resource
before_action :set_setting_group, only: [:show, :update]
def index
@settings = Setting.unscoped
@ -14,7 +13,7 @@ module Admin
Setting[k] = v
end
flash[:notice] = I18n.t('records_updated')
flash[:notice] = t('.saved')
redirect_to [:admin, :settings]
else
flash[:alert] = @errors.values.uniq.join(", ")
@ -22,74 +21,16 @@ module Admin
end
end
def show;
end
def update
if @setting_group.update(setting_group_params)
flash[:notice] = I18n.t('setting_updated')
redirect_to [:admin, @setting_group]
else
flash[:alert] = I18n.t('failed_to_update_setting')
render 'show'
end
end
private
def set_setting_group
@setting_group = SettingGroup.find(params[:id])
end
def setting_group_params
params.require(:setting_group).permit(settings_attributes: [:value, :id])
end
def casted_settings # rubocop:disable Metrics/MethodLength
def casted_settings
settings = {}
ints = [
:admin_contacts_min_count,
:admin_contacts_max_count,
:tech_contacts_min_count,
:tech_contacts_max_count,
:orphans_contacts_in_months,
:ds_digest_type,
:dnskeys_min_count,
:dnskeys_max_count,
:ns_min_count,
:ns_max_count,
:transfer_wait_time,
:invoice_number_min,
:invoice_number_max,
:days_to_keep_business_registry_cache,
:days_to_keep_invoices_active,
:days_to_keep_overdue_invoices_active,
:days_to_renew_domain_before_expire,
:expire_warning_period,
:redemption_grace_period,
:expire_pending_confirmation
]
floats = [:registry_vat_prc, :minimum_deposit]
booleans = [
:ds_data_allowed,
:key_data_allowed,
:client_side_status_editing_enabled,
:registrar_ip_whitelist_enabled,
:api_ip_whitelist_enabled,
:request_confrimation_on_registrant_change_enabled,
:request_confirmation_on_domain_deletion_enabled,
:nameserver_required,
:address_processing
]
params[:settings].each do |k, v|
settings[k] = v
settings[k] = v.to_i if ints.include?(k.to_sym)
settings[k] = v.to_f if floats.include?(k.to_sym)
settings[k] = (v == 'true' ? true : false) if booleans.include?(k.to_sym)
settings[k] = v.to_i if Setting.integer_settings.include?(k.to_sym)
settings[k] = v.to_f if Setting.float_settings.include?(k.to_sym)
settings[k] = (v == 'true' ? true : false) if Setting.boolean_settings.include?(k.to_sym)
end
settings