forked from cybrespace/mastodon
Fix relays UI being available in whitelist/secure mode (#11963)
Fix relays UI referencing relay that is not functional
This commit is contained in:
parent
00d7bdcc2a
commit
add4d4118c
|
@ -3,6 +3,7 @@
|
||||||
module Admin
|
module Admin
|
||||||
class RelaysController < BaseController
|
class RelaysController < BaseController
|
||||||
before_action :set_relay, except: [:index, :new, :create]
|
before_action :set_relay, except: [:index, :new, :create]
|
||||||
|
before_action :require_signatures_enabled!, only: [:new, :create, :enable]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
authorize :relay, :update?
|
authorize :relay, :update?
|
||||||
|
@ -11,7 +12,7 @@ module Admin
|
||||||
|
|
||||||
def new
|
def new
|
||||||
authorize :relay, :update?
|
authorize :relay, :update?
|
||||||
@relay = Relay.new(inbox_url: Relay::PRESET_RELAY)
|
@relay = Relay.new
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
@ -54,5 +55,9 @@ module Admin
|
||||||
def resource_params
|
def resource_params
|
||||||
params.require(:relay).permit(:inbox_url)
|
params.require(:relay).permit(:inbox_url)
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,8 +12,6 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
class Relay < ApplicationRecord
|
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?
|
validates :inbox_url, presence: true, uniqueness: true, url: true, if: :will_save_change_to_inbox_url?
|
||||||
|
|
||||||
enum state: [:idle, :pending, :accepted, :rejected]
|
enum state: [:idle, :pending, :accepted, :rejected]
|
||||||
|
@ -74,7 +72,6 @@ class Relay < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def ensure_disabled
|
def ensure_disabled
|
||||||
return unless enabled?
|
disable! if enabled?
|
||||||
disable!
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -257,7 +257,7 @@ en:
|
||||||
updated_msg: Emoji successfully updated!
|
updated_msg: Emoji successfully updated!
|
||||||
upload: Upload
|
upload: Upload
|
||||||
dashboard:
|
dashboard:
|
||||||
authorized_fetch_mode: Authorized fetch mode
|
authorized_fetch_mode: Secure mode
|
||||||
backlog: backlogged jobs
|
backlog: backlogged jobs
|
||||||
config: Configuration
|
config: Configuration
|
||||||
feature_deletions: Account deletions
|
feature_deletions: Account deletions
|
||||||
|
@ -383,6 +383,7 @@ en:
|
||||||
pending: Waiting for relay's approval
|
pending: Waiting for relay's approval
|
||||||
save_and_enable: Save and enable
|
save_and_enable: Save and enable
|
||||||
setup: Setup a relay connection
|
setup: Setup a relay connection
|
||||||
|
signatures_not_enabled: Relays will not work correctly while secure mode or whitelist mode is enabled
|
||||||
status: Status
|
status: Status
|
||||||
title: Relays
|
title: Relays
|
||||||
report_notes:
|
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 :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 :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 :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 :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? }
|
s.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }, if: -> { current_user.admin? }
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue