Display pending message on admin relays UI (#8494)
* Add missing specs for relay accept/reject * Display pending message on admin relays UI
This commit is contained in:
parent
2bbec9f4da
commit
5e1767173f
|
@ -2,20 +2,24 @@
|
||||||
%td
|
%td
|
||||||
%samp= relay.inbox_url
|
%samp= relay.inbox_url
|
||||||
%td
|
%td
|
||||||
- if relay.enabled?
|
- if relay.accepted?
|
||||||
%span.positive-hint
|
%span.positive-hint
|
||||||
= fa_icon('check')
|
= fa_icon('check')
|
||||||
= ' '
|
= ' '
|
||||||
= t 'admin.relays.enabled'
|
= t 'admin.relays.enabled'
|
||||||
|
- elsif relay.pending?
|
||||||
|
= fa_icon('hourglass')
|
||||||
|
= ' '
|
||||||
|
= t 'admin.relays.pending'
|
||||||
- else
|
- else
|
||||||
%span.negative-hint
|
%span.negative-hint
|
||||||
= fa_icon('times')
|
= fa_icon('times')
|
||||||
= ' '
|
= ' '
|
||||||
= t 'admin.relays.disabled'
|
= t 'admin.relays.disabled'
|
||||||
%td
|
%td
|
||||||
- if relay.enabled?
|
- if relay.accepted?
|
||||||
= table_link_to 'power-off', t('admin.relays.disable'), disable_admin_relay_path(relay), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
|
= table_link_to 'power-off', t('admin.relays.disable'), disable_admin_relay_path(relay), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
|
||||||
- else
|
- elsif !relay.pending?
|
||||||
= table_link_to 'power-off', t('admin.relays.enable'), enable_admin_relay_path(relay), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
|
= table_link_to 'power-off', t('admin.relays.enable'), enable_admin_relay_path(relay), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
|
||||||
|
|
||||||
= table_link_to 'times', t('admin.relays.delete'), admin_relay_path(relay), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
|
= table_link_to 'times', t('admin.relays.delete'), admin_relay_path(relay), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
|
||||||
|
|
|
@ -303,6 +303,7 @@ en:
|
||||||
description_html: A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public toots between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers.
|
description_html: A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public toots between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers.
|
||||||
enable_hint: Once enabled, your server will subscribe to all public toots from this relay, and will begin sending this server's public toots to it.
|
enable_hint: Once enabled, your server will subscribe to all public toots from this relay, and will begin sending this server's public toots to it.
|
||||||
inbox_url: Relay URL
|
inbox_url: Relay URL
|
||||||
|
pending: Waiting for relay's approval
|
||||||
setup: Setup a relay connection
|
setup: Setup a relay connection
|
||||||
status: Status
|
status: Status
|
||||||
title: Relays
|
title: Relays
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Fabricator(:relay) do
|
Fabricator(:relay) do
|
||||||
inbox_url "https://example.com/inbox"
|
inbox_url "https://example.com/inbox"
|
||||||
enabled true
|
state :idle
|
||||||
end
|
end
|
||||||
|
|
|
@ -35,4 +35,30 @@ RSpec.describe ActivityPub::Activity::Accept do
|
||||||
expect(recipient.requested?(sender)).to be false
|
expect(recipient.requested?(sender)).to be false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'given a relay' do
|
||||||
|
let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') }
|
||||||
|
|
||||||
|
let(:json) do
|
||||||
|
{
|
||||||
|
'@context': 'https://www.w3.org/ns/activitystreams',
|
||||||
|
id: 'foo',
|
||||||
|
type: 'Accept',
|
||||||
|
actor: ActivityPub::TagManager.instance.uri_for(sender),
|
||||||
|
object: {
|
||||||
|
id: 'https://abc-123/456',
|
||||||
|
type: 'Follow',
|
||||||
|
actor: ActivityPub::TagManager.instance.uri_for(recipient),
|
||||||
|
object: ActivityPub::TagManager.instance.uri_for(sender),
|
||||||
|
},
|
||||||
|
}.with_indifferent_access
|
||||||
|
end
|
||||||
|
|
||||||
|
subject { described_class.new(json, sender) }
|
||||||
|
|
||||||
|
it 'marks the relay as accepted' do
|
||||||
|
subject.perform
|
||||||
|
expect(relay.reload.accepted?).to be true
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -35,4 +35,30 @@ RSpec.describe ActivityPub::Activity::Reject do
|
||||||
expect(recipient.requested?(sender)).to be false
|
expect(recipient.requested?(sender)).to be false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'given a relay' do
|
||||||
|
let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') }
|
||||||
|
|
||||||
|
let(:json) do
|
||||||
|
{
|
||||||
|
'@context': 'https://www.w3.org/ns/activitystreams',
|
||||||
|
id: 'foo',
|
||||||
|
type: 'Reject',
|
||||||
|
actor: ActivityPub::TagManager.instance.uri_for(sender),
|
||||||
|
object: {
|
||||||
|
id: 'https://abc-123/456',
|
||||||
|
type: 'Follow',
|
||||||
|
actor: ActivityPub::TagManager.instance.uri_for(recipient),
|
||||||
|
object: ActivityPub::TagManager.instance.uri_for(sender),
|
||||||
|
},
|
||||||
|
}.with_indifferent_access
|
||||||
|
end
|
||||||
|
|
||||||
|
subject { described_class.new(json, sender) }
|
||||||
|
|
||||||
|
it 'marks the relay as rejected' do
|
||||||
|
subject.perform
|
||||||
|
expect(relay.reload.rejected?).to be true
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Reference in New Issue