Skip to content
Extraits de code Groupes Projets
Non vérifiée Valider 5e176717 rédigé par Eugen Rochko's avatar Eugen Rochko Validation de GitHub
Parcourir les fichiers

Display pending message on admin relays UI (#8494)

* Add missing specs for relay accept/reject

* Display pending message on admin relays UI
parent 2bbec9f4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -2,20 +2,24 @@ ...@@ -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: ...@@ -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
......
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 ...@@ -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 ...@@ -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
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter