Add simple admin overview of PuSH subscriptions
This commit is contained in:
		| @@ -234,3 +234,4 @@ body { | ||||
| @import 'stream_entries'; | ||||
| @import 'components'; | ||||
| @import 'about'; | ||||
| @import 'tables'; | ||||
|   | ||||
							
								
								
									
										25
									
								
								app/assets/stylesheets/tables.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								app/assets/stylesheets/tables.scss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| .table { | ||||
|   width: 100%; | ||||
|   max-width: 100%; | ||||
|   border-spacing: 0; | ||||
|   border-collapse: collapse; | ||||
|  | ||||
|   th, td { | ||||
|     padding: 8px; | ||||
|     line-height: 1.42857143; | ||||
|     vertical-align: top; | ||||
|     border-top: 1px solid #ddd; | ||||
|     text-align: left; | ||||
|   } | ||||
|  | ||||
|   & > thead > tr > th { | ||||
|     vertical-align: bottom; | ||||
|     border-bottom: 2px solid #ddd; | ||||
|     border-top: 0; | ||||
|     font-weight: 500; | ||||
|   } | ||||
| } | ||||
|  | ||||
| samp { | ||||
|   font-family: 'Roboto Mono', monospace; | ||||
| } | ||||
							
								
								
									
										11
									
								
								app/controllers/admin/pubsubhubbub_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								app/controllers/admin/pubsubhubbub_controller.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| # frozen_string_literal: true | ||||
|  | ||||
| class Admin::PubsubhubbubController < ApplicationController | ||||
|   before_action :require_admin! | ||||
|  | ||||
|   layout 'public' | ||||
|  | ||||
|   def index | ||||
|     @subscriptions = Subscription.includes(:account).paginate(page: params[:page], per_page: 40) | ||||
|   end | ||||
| end | ||||
| @@ -31,6 +31,10 @@ class ApplicationController < ActionController::Base | ||||
|     I18n.locale = I18n.default_locale | ||||
|   end | ||||
|  | ||||
|   def require_admin! | ||||
|     redirect_to root_path unless current_user&.admin? | ||||
|   end | ||||
|  | ||||
|   protected | ||||
|  | ||||
|   def not_found | ||||
|   | ||||
							
								
								
									
										2
									
								
								app/helpers/admin/pubsubhubbub_helper.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								app/helpers/admin/pubsubhubbub_helper.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| module Admin::PubsubhubbubHelper | ||||
| end | ||||
							
								
								
									
										20
									
								
								app/views/admin/pubsubhubbub/index.html.haml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								app/views/admin/pubsubhubbub/index.html.haml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| %table.table | ||||
|   %thead | ||||
|     %tr | ||||
|       %th Topic | ||||
|       %th Callback URL | ||||
|       %th Confirmed | ||||
|       %th Expires in | ||||
|   %tbody | ||||
|     - @subscriptions.each do |subscription| | ||||
|       %tr | ||||
|         %td | ||||
|           %samp= subscription.account.acct | ||||
|         %td | ||||
|           %samp= subscription.callback_url | ||||
|         %td | ||||
|           - if subscription.confirmed? | ||||
|             %i.fa.fa-check | ||||
|         %td= distance_of_time_in_words(Time.now, subscription.expires_at) | ||||
|  | ||||
| = will_paginate @subscriptions, pagination_options | ||||
| @@ -44,6 +44,10 @@ Rails.application.routes.draw do | ||||
|   resources :media, only: [:show] | ||||
|   resources :tags,  only: [:show] | ||||
|  | ||||
|   namespace :admin do | ||||
|     resources :pubsubhubbub, only: [:index] | ||||
|   end | ||||
|  | ||||
|   namespace :api do | ||||
|     # PubSubHubbub outgoing subscriptions | ||||
|     resources :subscriptions, only: [:show] | ||||
|   | ||||
							
								
								
									
										15
									
								
								spec/controllers/admin/pubsubhubbub_controller_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								spec/controllers/admin/pubsubhubbub_controller_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| # frozen_string_literal: true | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe Admin::PubsubhubbubController, type: :controller do | ||||
|   describe 'GET #index' do | ||||
|     before do | ||||
|       sign_in :user, Fabricate(:user, admin: true) | ||||
|     end | ||||
|  | ||||
|     it 'returns http success' do | ||||
|       get :index | ||||
|       expect(response).to have_http_status(:success) | ||||
|     end | ||||
|   end | ||||
| end | ||||
							
								
								
									
										15
									
								
								spec/helpers/admin/pubsubhubbub_helper_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								spec/helpers/admin/pubsubhubbub_helper_spec.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| # Specs in this file have access to a helper object that includes | ||||
| # the Admin::PubsubhubbubHelper. For example: | ||||
| # | ||||
| # describe Admin::PubsubhubbubHelper do | ||||
| #   describe "string concat" do | ||||
| #     it "concats two strings with spaces" do | ||||
| #       expect(helper.concat_strings("this","that")).to eq("this that") | ||||
| #     end | ||||
| #   end | ||||
| # end | ||||
| RSpec.describe Admin::PubsubhubbubHelper, type: :helper do | ||||
|   pending "add some examples to (or delete) #{__FILE__}" | ||||
| end | ||||
		Reference in New Issue
	
	Block a user