--- /dev/null
+# frozen_string_literal: true
+
+class Admin::ReportsController < ApplicationController
+ before_action :require_admin!
+
+ layout 'admin'
+
+ def index
+ @reports = Report.includes(:account, :target_account).paginate(page: params[:page], per_page: 40)
+ @reports = params[:action_taken].present? ? @reports.resolved : @reports.unresolved
+ end
+
+ def show
+ @report = Report.find(params[:id])
+ @statuses = Status.where(id: @report.status_ids)
+ end
+end
def permitted?(other_account = nil)
if private_visibility?
- (account.id == other_account&.id || other_account&.following?(account) || mentions.include?(other_account))
+ (account.id == other_account&.id || other_account&.following?(account) || mentions.where(account: other_account).exists?)
else
other_account.nil? || !account.blocking?(other_account)
end
%td= @account.user.current_sign_in_ip
%tr
%th Most recent activity
- %td= l @account.user.current_sign_in_at
+ %td
+ - if @account.user.current_sign_in_at
+ = l @account.user.current_sign_in_at
+ - else
+ Never
- else
%tr
%th Profile URL
--- /dev/null
+- content_for :page_title do
+ Reports
+
+.filters
+ .filter-subset
+ %strong Status
+ %ul
+ %li= filter_link_to 'Unresolved', action_taken: nil
+ %li= filter_link_to 'Resolved', action_taken: '1'
+
+%table.table
+ %thead
+ %tr
+ %th ID
+ %th Target
+ %th Reported by
+ %th Comment
+ %th
+ %tbody
+ - @reports.each do |report|
+ %tr
+ %td= "##{report.id}"
+ %td= link_to report.target_account.acct, admin_account_path(report.target_account.id)
+ %td= link_to report.account.acct, admin_account_path(report.account.id)
+ %td= truncate(report.comment, length: 30, separator: ' ')
+ %td= table_link_to 'circle', 'View', admin_report_path(report)
+= will_paginate @reports, pagination_options
--- /dev/null
+- content_for :page_title do
+ = "Report ##{@report.id}"
end
primary.item :admin, safe_join([fa_icon('cogs fw'), 'Administration']), admin_accounts_url, if: proc { current_user.admin? } do |admin|
+ admin.item :reports, safe_join([fa_icon('flag fw'), 'Reports']), admin_reports_url, highlights_on: %r{/admin/reports}
admin.item :accounts, safe_join([fa_icon('users fw'), 'Accounts']), admin_accounts_url, highlights_on: %r{/admin/accounts}
admin.item :pubsubhubbubs, safe_join([fa_icon('paper-plane-o fw'), 'PubSubHubbub']), admin_pubsubhubbub_index_url
admin.item :domain_blocks, safe_join([fa_icon('lock fw'), 'Domain Blocks']), admin_domain_blocks_url
resources :pubsubhubbub, only: [:index]
resources :domain_blocks, only: [:index, :create]
resources :settings, only: [:index, :update]
+ resources :reports, only: [:index, :show]
resources :accounts, only: [:index, :show] do
member do