Fix relays UI being available in whitelist/secure mode (#11963)
Fix relays UI referencing relay that is not functional
This commit is contained in:
		| @@ -3,6 +3,7 @@ | ||||
| module Admin | ||||
|   class RelaysController < BaseController | ||||
|     before_action :set_relay, except: [:index, :new, :create] | ||||
|     before_action :require_signatures_enabled!, only: [:new, :create, :enable] | ||||
|  | ||||
|     def index | ||||
|       authorize :relay, :update? | ||||
| @@ -11,7 +12,7 @@ module Admin | ||||
|  | ||||
|     def new | ||||
|       authorize :relay, :update? | ||||
|       @relay = Relay.new(inbox_url: Relay::PRESET_RELAY) | ||||
|       @relay = Relay.new | ||||
|     end | ||||
|  | ||||
|     def create | ||||
| @@ -54,5 +55,9 @@ module Admin | ||||
|     def resource_params | ||||
|       params.require(:relay).permit(:inbox_url) | ||||
|     end | ||||
|  | ||||
|     def require_signatures_enabled! | ||||
|       redirect_to admin_relays_path, alert: I18n.t('admin.relays.signatures_not_enabled') if authorized_fetch_mode? | ||||
|     end | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -12,8 +12,6 @@ | ||||
| # | ||||
|  | ||||
| class Relay < ApplicationRecord | ||||
|   PRESET_RELAY = 'https://relay.joinmastodon.org/inbox' | ||||
|  | ||||
|   validates :inbox_url, presence: true, uniqueness: true, url: true, if: :will_save_change_to_inbox_url? | ||||
|  | ||||
|   enum state: [:idle, :pending, :accepted, :rejected] | ||||
| @@ -74,7 +72,6 @@ class Relay < ApplicationRecord | ||||
|   end | ||||
|  | ||||
|   def ensure_disabled | ||||
|     return unless enabled? | ||||
|     disable! | ||||
|     disable! if enabled? | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -257,7 +257,7 @@ en: | ||||
|       updated_msg: Emoji successfully updated! | ||||
|       upload: Upload | ||||
|     dashboard: | ||||
|       authorized_fetch_mode: Authorized fetch mode | ||||
|       authorized_fetch_mode: Secure mode | ||||
|       backlog: backlogged jobs | ||||
|       config: Configuration | ||||
|       feature_deletions: Account deletions | ||||
| @@ -383,6 +383,7 @@ en: | ||||
|       pending: Waiting for relay's approval | ||||
|       save_and_enable: Save and enable | ||||
|       setup: Setup a relay connection | ||||
|       signatures_not_enabled: Relays will not work correctly while secure mode or whitelist mode is enabled | ||||
|       status: Status | ||||
|       title: Relays | ||||
|     report_notes: | ||||
|   | ||||
| @@ -47,7 +47,7 @@ SimpleNavigation::Configuration.run do |navigation| | ||||
|       s.item :dashboard, safe_join([fa_icon('tachometer fw'), t('admin.dashboard.title')]), admin_dashboard_url | ||||
|       s.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/settings} | ||||
|       s.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_url, highlights_on: %r{/admin/custom_emojis} | ||||
|       s.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/relays} | ||||
|       s.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? && !whitelist_mode? }, highlights_on: %r{/admin/relays} | ||||
|       s.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url, link_html: { target: 'sidekiq' }, if: -> { current_user.admin? } | ||||
|       s.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }, if: -> { current_user.admin? } | ||||
|     end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user