Allow turning keybase off instance-wide
This commit is contained in:
		| @@ -5,6 +5,7 @@ class Settings::IdentityProofsController < Settings::BaseController | ||||
|  | ||||
|   before_action :authenticate_user! | ||||
|   before_action :check_required_params, only: :new | ||||
|   before_action :check_enabled, only: :new | ||||
|  | ||||
|   def index | ||||
|     @proofs = AccountIdentityProof.where(account: current_account).order(provider: :asc, provider_username: :asc) | ||||
| @@ -41,6 +42,10 @@ class Settings::IdentityProofsController < Settings::BaseController | ||||
|  | ||||
|   private | ||||
|  | ||||
|   def check_enabled | ||||
|     not_found unless Setting.enable_keybase | ||||
|   end | ||||
|  | ||||
|   def check_required_params | ||||
|     redirect_to settings_identity_proofs_path unless [:provider, :provider_username, :username, :token].all? { |k| params[k].present? } | ||||
|   end | ||||
|   | ||||
| @@ -2,8 +2,16 @@ | ||||
|  | ||||
| module WellKnown | ||||
|   class KeybaseProofConfigController < ActionController::Base | ||||
|     before_action :check_enabled | ||||
|  | ||||
|     def show | ||||
|       render json: {}, serializer: ProofProvider::Keybase::ConfigSerializer | ||||
|     end | ||||
|  | ||||
|     private | ||||
|  | ||||
|     def check_enabled | ||||
|       head 404 unless Setting.enable_keybase | ||||
|     end | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -27,6 +27,7 @@ class Form::AdminSettings | ||||
|     custom_css | ||||
|     profile_directory | ||||
|     hide_followers_count | ||||
|     enable_keybase | ||||
|     flavour_and_skin | ||||
|     thumbnail | ||||
|     hero | ||||
| @@ -43,6 +44,7 @@ class Form::AdminSettings | ||||
|     preview_sensitive_media | ||||
|     profile_directory | ||||
|     hide_followers_count | ||||
|     enable_keybase | ||||
|   ).freeze | ||||
|  | ||||
|   UPLOAD_KEYS = %i( | ||||
|   | ||||
| @@ -49,6 +49,8 @@ | ||||
|           = feature_hint(link_to(t('admin.dashboard.feature_profile_directory'), edit_admin_settings_path), @profile_directory) | ||||
|         %li | ||||
|           = feature_hint(link_to(t('admin.dashboard.feature_timeline_preview'), edit_admin_settings_path), @timeline_preview) | ||||
|         %li | ||||
|           = feature_hint(link_to(t('admin.dashboard.keybase'), edit_admin_settings_path), @timeline_preview) | ||||
|         %li | ||||
|           = feature_hint(link_to(t('admin.dashboard.feature_relay'), admin_relays_path), @relay_enabled) | ||||
|  | ||||
|   | ||||
| @@ -69,6 +69,9 @@ | ||||
|   .fields-group | ||||
|     = f.input :hide_followers_count, as: :boolean, wrapper: :with_label, label: t('admin.settings.hide_followers_count.title'), hint: t('admin.settings.hide_followers_count.desc_html') | ||||
|  | ||||
|   .fields-group | ||||
|     = f.input :enable_keybase, as: :boolean, wrapper: :with_label, label: t('admin.settings.enable_keybase.title'), hint: t('admin.settings.enable_keybase.desc_html') | ||||
|  | ||||
|   %hr.spacer/ | ||||
|  | ||||
|   .fields-group | ||||
|   | ||||
| @@ -252,6 +252,7 @@ en: | ||||
|       feature_timeline_preview: Timeline preview | ||||
|       features: Features | ||||
|       hidden_service: Federation with hidden services | ||||
|       keybase: Keybase integration | ||||
|       open_reports: open reports | ||||
|       recent_users: Recent users | ||||
|       search: Full-text search | ||||
|   | ||||
| @@ -31,6 +31,7 @@ defaults: &defaults | ||||
|   system_font_ui: false | ||||
|   noindex: false | ||||
|   hide_followers_count: false | ||||
|   enable_keybase: true | ||||
|   flavour: 'glitch' | ||||
|   skin: 'default' | ||||
|   aggregate_reblogs: true | ||||
|   | ||||
		Reference in New Issue
	
	Block a user