add a domain policy viewer at `/policies`

staging
multiple creatures 2019-07-30 16:35:53 -05:00
parent 3f327a3ea7
commit ccb84572d6
9 changed files with 153 additions and 0 deletions

View File

@ -0,0 +1,30 @@
# frozen_string_literal: true
class DomainPolicyController < ApplicationController
before_action :authenticate_user!
before_action :set_pack
layout 'public'
before_action :set_instance_presenter, only: [:show]
def show
@hide_navbar = true
@domain_policies = DomainBlock.all
end
private
def set_pack
use_pack 'common'
end
def set_instance_presenter
@instance_presenter = InstancePresenter.new
end
def authenticate_user!
return if user_signed_in?
not_found
end
end

View File

@ -0,0 +1,2 @@
module DomainPolicyHelper
end

View File

@ -1 +1,16 @@
.landing .box-widget { text-align: center; }
.rich-formatting td {
ul {
list-style: none;
margin: 0;
li {
margin: 0;
padding: 0;
line-height: 18px;
}
li:after { content: "," }
li:last-child:after { content: "" }
}
}

View File

@ -0,0 +1,14 @@
%tr
%td
%samp= domain_block.domain
%td= domain_block.severity.gsub('_', ' ').capitalize
%td
%ul
-if domain_block.reject_media?
%li= "Rejecting media"
-if domain_block.force_sensitive?
%li= "Media marked sensitive"
-if domain_block.reject_reports?
%li= "Rejecting reports"
%td= "None"

View File

@ -0,0 +1,58 @@
- content_for :page_title do
= "#{site_hostname} Domain Policies"
- content_for :header_tags do
= render partial: 'shared/og'
.grid-3
.column-0
.public-account-header.public-account-header--no-bar
.public-account-header__image
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax'
.column-1
.landing-page__call-to-action{ dir: 'ltr' }
.row
.row__information-board
.information-board__section
%span= t 'about.user_count_before'
%strong= number_with_delimiter @instance_presenter.user_count
%span= t 'about.user_count_after', count: @instance_presenter.user_count
.information-board__section
%span= t 'about.status_count_before'
%strong= number_with_delimiter @instance_presenter.status_count
%span= t 'about.status_count_after', count: @instance_presenter.status_count
.row__mascot
.landing-page__mascot
= image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'), alt: ''
.column-2
.landing-page__information.contact-widget
%p
%strong= t 'about.administered_by'
= account_link_to(@instance_presenter.contact_account)
- if @instance_presenter.site_contact_email.present?
%p.contact-widget__mail
%strong
= succeed ':' do
= t 'about.contact'
%br/
= mail_to @instance_presenter.site_contact_email, nil, title: @instance_presenter.site_contact_email
.column-3
.box-widget
.rich-formatting
%h1= "#{@instance_presenter.site_title} Domain Policies"
.table-wrapper
%table.table
%thead
%tr
%th= "Domain"
%th= "Policy"
%th= "Additional"
%th= "Reason"
%tbody
= render @domain_policies

View File

@ -419,6 +419,8 @@ Rails.application.routes.draw do
get '/about/more', to: 'about#more'
get '/terms', to: 'about#terms'
get '/policies', to: 'domain_policy#show'
root 'home#index'
match '*unmatched_route',

View File

@ -0,0 +1,12 @@
require 'rails_helper'
RSpec.describe DomainPolicyController, type: :controller do
describe "GET #show" do
it "returns http success" do
get :show
expect(response).to have_http_status(:success)
end
end
end

View File

@ -0,0 +1,15 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the DomainPolicyHelper. For example:
#
# describe DomainPolicyHelper 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 DomainPolicyHelper, type: :helper do
pending "add some examples to (or delete) #{__FILE__}"
end

View File

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe "domain_policy/show.html.haml", type: :view do
pending "add some examples to (or delete) #{__FILE__}"
end