* Split Settings::Authentication from SiteConfig * Move specs * Sort fields * Update settings usages * Update recaptcha usages * Add data update script * Update spec * Rename SiteConfigParams concern * Fixes, new route, new controller * Controller and service refactoring * More controller and service updates * Spec updates * More spec fixes * Move file * Fix FeedbackMessagesController * Update admin/configs_spec * Fix remaining specs in admin/configs_spec * Fix configs API * Formatting * Clean up old service object * Various fixes * Update DUS * Add model argument to admin_config_label * Fix key name * Fix specs * Add distinct request caches for settings classes * Fix e2e tests * Fix remaining system spec * Make DUS idempotent * Move routes block * Cleanup * Switch to ActiveSupport::CurrentAttributes * Pinned rails-settings-cached * Update e2e test * Update lib/data_update_scripts/20210316091354_move_authentication_settings.rb Co-authored-by: rhymes <rhymes@hey.com> * Add guard to DUS * Temporarily re-add two SiteConfig fields * Fix config show view Co-authored-by: rhymes <rhymes@hey.com>
43 lines
1.4 KiB
Ruby
43 lines
1.4 KiB
Ruby
module Api
|
|
module V0
|
|
module Admin
|
|
class ConfigsController < ApiController
|
|
include SettingsParams
|
|
|
|
before_action :authenticate_with_api_key_or_current_user!
|
|
before_action :authorize_super_admin
|
|
skip_before_action :verify_authenticity_token, only: %i[update]
|
|
|
|
def show
|
|
@site_configs = SiteConfig.all
|
|
end
|
|
|
|
def update
|
|
# NOTE: citizen428 - this is not going to scale but I want to wait
|
|
# until we extract at least one more settings model before deciding
|
|
# how to change this.
|
|
settings_result = ::Settings::Upsert.call(settings_params)
|
|
auth_settings_result = ::Authentication::SettingsUpsert.call(auth_settings_params)
|
|
|
|
if settings_result.success? && auth_settings_result.success?
|
|
@site_configs = SiteConfig.all + Settings::Authentication.all
|
|
Audit::Logger.log(:internal, @user, params.dup)
|
|
bust_content_change_caches
|
|
render "show"
|
|
else
|
|
errors = settings_result.errors + auth_settings_result.errors
|
|
render json: { error: errors.to_sentence, status: 422 }, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def auth_settings_params
|
|
params
|
|
.require(:site_config)
|
|
.permit(*::Settings::Authentication.keys, :providers_to_enable)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|