42af229510
This icommit adds several changes related to the same topic - resetting a Runner registration token: 1. On Project settings page it adds a button for resetting the registration token and it removes the Runner token field that was confusing all GitLab users. 2. On Group settings page it adds the same button for resetting the registration token. 3. On Admin Runners settings page it moves the button to the same place as in Project and Group settings and it changes slightly the page layout to make it more similar to Group and Project setting pages. 4. It refactorizes a little the partial that prints runner registration description. Thanks to this Project, Group and Admin settings of the Runner are re-using the same code to generate the button. 5. Updates the translations of changed text.
135 lines
3.4 KiB
Ruby
135 lines
3.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class Admin::ApplicationSettingsController < Admin::ApplicationController
|
|
include InternalRedirect
|
|
before_action :set_application_setting
|
|
|
|
def show
|
|
end
|
|
|
|
def integrations
|
|
end
|
|
|
|
def repository
|
|
end
|
|
|
|
def templates
|
|
end
|
|
|
|
def ci_cd
|
|
end
|
|
|
|
def reporting
|
|
end
|
|
|
|
def metrics_and_profiling
|
|
end
|
|
|
|
def network
|
|
end
|
|
|
|
def geo
|
|
end
|
|
|
|
def preferences
|
|
end
|
|
|
|
def update
|
|
successful = ApplicationSettings::UpdateService
|
|
.new(@application_setting, current_user, application_setting_params)
|
|
.execute
|
|
|
|
if recheck_user_consent?
|
|
session[:ask_for_usage_stats_consent] = current_user.requires_usage_stats_consent?
|
|
end
|
|
|
|
redirect_path = referer_path(request) || admin_application_settings_path
|
|
|
|
respond_to do |format|
|
|
if successful
|
|
format.json { head :ok }
|
|
format.html { redirect_to redirect_path, notice: 'Application settings saved successfully' }
|
|
else
|
|
format.json { head :bad_request }
|
|
format.html { render :show }
|
|
end
|
|
end
|
|
end
|
|
|
|
def usage_data
|
|
respond_to do |format|
|
|
format.html do
|
|
usage_data_json = JSON.pretty_generate(Gitlab::UsageData.data)
|
|
|
|
render html: Gitlab::Highlight.highlight('payload.json', usage_data_json)
|
|
end
|
|
format.json { render json: Gitlab::UsageData.to_json }
|
|
end
|
|
end
|
|
|
|
def reset_registration_token
|
|
@application_setting.reset_runners_registration_token!
|
|
|
|
flash[:notice] = 'New runners registration token has been generated!'
|
|
redirect_to admin_runners_path
|
|
end
|
|
|
|
def reset_health_check_token
|
|
@application_setting.reset_health_check_access_token!
|
|
flash[:notice] = 'New health check access token has been generated!'
|
|
redirect_to :back
|
|
end
|
|
|
|
def clear_repository_check_states
|
|
RepositoryCheck::ClearWorker.perform_async
|
|
|
|
redirect_to(
|
|
admin_application_settings_path,
|
|
notice: 'Started asynchronous removal of all repository check states.'
|
|
)
|
|
end
|
|
|
|
private
|
|
|
|
def set_application_setting
|
|
@application_setting = Gitlab::CurrentSettings.current_application_settings
|
|
end
|
|
|
|
def application_setting_params
|
|
params[:application_setting] ||= {}
|
|
|
|
if params[:application_setting].key?(:enabled_oauth_sign_in_sources)
|
|
enabled_oauth_sign_in_sources = params[:application_setting].delete(:enabled_oauth_sign_in_sources)
|
|
enabled_oauth_sign_in_sources&.delete("")
|
|
|
|
params[:application_setting][:disabled_oauth_sign_in_sources] =
|
|
AuthHelper.button_based_providers.map(&:to_s) -
|
|
Array(enabled_oauth_sign_in_sources)
|
|
end
|
|
|
|
params[:application_setting][:import_sources]&.delete("")
|
|
params[:application_setting][:restricted_visibility_levels]&.delete("")
|
|
params.delete(:domain_blacklist_raw) if params[:domain_blacklist_file]
|
|
|
|
params.require(:application_setting).permit(
|
|
visible_application_setting_attributes
|
|
)
|
|
end
|
|
|
|
def recheck_user_consent?
|
|
return false unless session[:ask_for_usage_stats_consent]
|
|
return false unless params[:application_setting]
|
|
|
|
params[:application_setting].key?(:usage_ping_enabled) || params[:application_setting].key?(:version_check_enabled)
|
|
end
|
|
|
|
def visible_application_setting_attributes
|
|
ApplicationSettingsHelper.visible_attributes + [
|
|
:domain_blacklist_file,
|
|
disabled_oauth_sign_in_sources: [],
|
|
import_sources: [],
|
|
repository_storages: [],
|
|
restricted_visibility_levels: []
|
|
]
|
|
end
|
|
end
|