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 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user