Skip to content

Commit

Permalink
port tootsuite#11963 to monsterfork: Fix relays UI being available in…
Browse files Browse the repository at this point in the history
… whitelist/secure mode

Fix relays UI referencing relay that is not functional
  • Loading branch information
Gargron authored and multiple creatures committed Feb 21, 2020
1 parent 4692c60 commit 8a7020d
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 5 deletions.
7 changes: 6 additions & 1 deletion app/controllers/admin/relays_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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?
Expand All @@ -11,7 +12,7 @@ def index

def new
authorize :relay, :update?
@relay = Relay.new(inbox_url: Relay::PRESET_RELAY)
@relay = Relay.new
end

def create
Expand Down Expand Up @@ -54,5 +55,9 @@ def set_relay
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
5 changes: 1 addition & 4 deletions app/models/relay.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -74,7 +72,6 @@ def some_local_account
end

def ensure_disabled
return unless enabled?
disable!
disable! if enabled?
end
end
2 changes: 2 additions & 0 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,7 @@ en:
updated_msg: Emoji successfully updated!
upload: Upload
dashboard:
authorized_fetch_mode: Secure mode
backlog: backlogged jobs
config: Configuration
feature_deletions: Account deletions
Expand Down Expand Up @@ -410,6 +411,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:
Expand Down
1 change: 1 addition & 0 deletions config/navigation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
n.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), admin_dashboard_url, if: proc { current_user.staff? && !current_user.defanged? } do |s|
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? && !current_user.defanged? }, highlights_on: %r{/admin/settings}
s.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? && !current_user.defanged? && !whitelist_mode? }, 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? && !current_user.defanged? }, 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? && !current_user.defanged? }
s.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }, if: -> { current_user.admin? && !current_user.defanged? }
Expand Down

0 comments on commit 8a7020d

Please sign in to comment.