Commit 5b5cc4b3 authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Fix changed filter params in admin APIs

Fix approve and reject actions not being logged from individual actions
parent d78ddb1c
Showing with 45 additions and 53 deletions
+45 -53
......@@ -48,12 +48,14 @@ module Admin
def approve
authorize @account.user, :approve?
log_action :approve, @account.user
@account.user.approve!
redirect_to admin_accounts_path(status: 'pending'), notice: I18n.t('admin.accounts.approved_msg', username: @account.acct)
end
def reject
authorize @account.user, :reject?
log_action :reject, @account.user, username: @account.username
DeleteAccountService.new.call(@account, reserve_email: false, reserve_username: false)
redirect_to admin_accounts_path(status: 'pending'), notice: I18n.t('admin.accounts.rejected_msg', username: @account.acct)
end
......
......@@ -48,7 +48,7 @@ module Admin
private
def filtered_reports
ReportFilter.new(filter_params).results.order(id: :desc).includes(:account, :target_account)
ReportFilter.new(filter_params).results.includes(:account, :target_account)
end
def filter_params
......
......@@ -15,24 +15,7 @@ class Api::V1::Admin::AccountsController < Api::BaseController
after_action :insert_pagination_headers, only: :index
FILTER_PARAMS = %i(
local
remote
by_domain
active
pending
disabled
sensitized
silenced
suspended
username
display_name
email
ip
staff
).freeze
PAGINATION_PARAMS = (%i(limit) + FILTER_PARAMS).freeze
PAGINATION_PARAMS = (%i(limit) + AccountFilter::KEYS).freeze
def index
authorize :account, :index?
......@@ -53,12 +36,14 @@ class Api::V1::Admin::AccountsController < Api::BaseController
def approve
authorize @account.user, :approve?
log_action(:approve, @account.user)
@account.user.approve!
render json: @account, serializer: REST::Admin::AccountSerializer
end
def reject
authorize @account.user, :reject?
log_action(:reject, @account.user, username: @account.username)
DeleteAccountService.new.call(@account, reserve_email: false, reserve_username: false)
render json: @account, serializer: REST::Admin::AccountSerializer
end
......@@ -94,7 +79,7 @@ class Api::V1::Admin::AccountsController < Api::BaseController
private
def set_accounts
@accounts = filtered_accounts.order(id: :desc).includes(user: [:invite_request, :invite]).to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id))
@accounts = filtered_accounts.to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id))
end
def set_account
......@@ -102,11 +87,11 @@ class Api::V1::Admin::AccountsController < Api::BaseController
end
def filtered_accounts
AccountFilter.new(filter_params).results
AccountFilter.new(filter_params.with_defaults(order: 'recent')).results
end
def filter_params
params.permit(*FILTER_PARAMS)
params.slice(*AccountFilter::KEYS).permit(*AccountFilter::KEYS)
end
def insert_pagination_headers
......
......@@ -14,13 +14,7 @@ class Api::V1::Admin::ReportsController < Api::BaseController
after_action :insert_pagination_headers, only: :index
FILTER_PARAMS = %i(
resolved
account_id
target_account_id
).freeze
PAGINATION_PARAMS = (%i(limit) + FILTER_PARAMS).freeze
PAGINATION_PARAMS = (%i(limit) + ReportFilter::KEYS).freeze
def index
authorize :report, :index?
......@@ -75,7 +69,7 @@ class Api::V1::Admin::ReportsController < Api::BaseController
end
def filter_params
params.permit(*FILTER_PARAMS)
params.slice(*ReportFilter::KEYS).permit(*ReportFilter::KEYS)
end
def insert_pagination_headers
......
......@@ -21,7 +21,7 @@ class AccountFilter
end
def results
scope = Account.includes(:account_stat, user: [:session_activations, :invite_request]).without_instance_actor.reorder(nil)
scope = Account.includes(:account_stat, user: [:ips, :invite, :invite_request]).without_instance_actor.reorder(nil)
params.each do |key, value|
scope.merge!(scope_for(key, value.to_s.strip)) if value.present?
......
......@@ -2,10 +2,10 @@
class ReportFilter
KEYS = %i(
resolved
status
account_id
target_account_id
by_target_domain
target_domain
target_origin
).freeze
......@@ -16,7 +16,7 @@ class ReportFilter
end
def results
scope = Report.unresolved
scope = Report.order(id: :desc)
params.each do |key, value|
scope = scope.merge scope_for(key, value)
......@@ -27,10 +27,10 @@ class ReportFilter
def scope_for(key, value)
case key.to_sym
when :by_target_domain
when :target_domain
Report.where(target_account: Account.where(domain: value))
when :resolved
Report.resolved
when :status
status_scope(value)
when :account_id
Report.where(account_id: value)
when :target_account_id
......@@ -52,4 +52,15 @@ class ReportFilter
raise "Unknown value: #{value}"
end
end
def status_scope(value)
case value.to_sym
when :resolved
Report.resolved
when :unresolved
Report.unresolved
else
raise "Unknown value: #{value}"
end
end
end
......@@ -5,8 +5,8 @@
.filter-subset
%strong= t('admin.reports.status')
%ul
%li= filter_link_to t('admin.reports.unresolved'), resolved: nil
%li= filter_link_to t('admin.reports.resolved'), resolved: '1'
%li= filter_link_to t('admin.reports.unresolved'), status: 'unresolved'
%li= filter_link_to t('admin.reports.resolved'), status: 'resolved'
.filter-subset
%strong= t('admin.reports.target_origin')
%ul
......@@ -19,7 +19,7 @@
- ReportFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?
- %i(by_target_domain).each do |key|
- %i(target_domain).each do |key|
.input.string.optional
= text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.reports.#{key}")
......
......@@ -571,7 +571,6 @@ ar:
are_you_sure: هل أنت متأكد ؟
assign_to_self: عين لي
assigned: تعين رئيس
by_target_domain: نطاق الحساب المبلّغ عنه
comment:
none: لا شيء
created_at: ذكرت
......@@ -592,6 +591,7 @@ ar:
resolved: معالجة
resolved_msg: تم حل تقرير بنجاح!
status: الحالة
target_domain: نطاق الحساب المبلّغ عنه
target_origin: مصدر الحساب المبلغ عنه
title: الشكاوى
unassign: إلغاء تعيين
......
......@@ -554,7 +554,6 @@ ca:
are_you_sure: N'estàs segur?
assign_to_self: Assignar-me
assigned: Moderador assignat
by_target_domain: Domini del compte reportat
comment:
none: Cap
created_at: Reportat
......@@ -575,6 +574,7 @@ ca:
resolved: Resolt
resolved_msg: Informe resolt amb èxit!
status: Estat
target_domain: Domini del compte reportat
target_origin: Origen del compte reportat
title: Informes
unassign: Treu l'assignació
......
......@@ -532,7 +532,6 @@ co:
are_you_sure: Site sicuru·a?
assign_to_self: Assignallu à mè
assigned: Muderatore assignatu
by_target_domain: Duminiu di u contu signalatu
comment:
none: Nisunu
created_at: Palisatu
......@@ -553,6 +552,7 @@ co:
resolved: Scioltu è chjosu
resolved_msg: Signalamentu scioltu!
status: Statutu
target_domain: Duminiu di u contu signalatu
title: Signalamenti
unassign: Disassignà
unresolved: Micca sciolti
......
......@@ -578,7 +578,6 @@ cs:
are_you_sure: Opravu?
assign_to_self: Přidělit ke mně
assigned: Přiřazený moderátor
by_target_domain: Doména nahlášeného účtu
comment:
none: Žádné
created_at: Nahlášené
......@@ -599,6 +598,7 @@ cs:
resolved: Vyřešeno
resolved_msg: Hlášení úspěšně vyřešeno!
status: Stav
target_domain: Doména nahlášeného účtu
target_origin: Původ nahlášeného účtu
title: Hlášení
unassign: Odebrat
......
......@@ -435,7 +435,6 @@ cy:
are_you_sure: Ydych chi'n sicr?
assign_to_self: Aseinio i mi
assigned: Arolygwr wedi'i aseinio
by_target_domain: Parth cyfrif a adroddir
comment:
none: Dim
created_at: Adroddwyd
......@@ -454,6 +453,7 @@ cy:
resolved: Wedi ei ddatrys
resolved_msg: Llwyddwyd i ddatrys yr adroddiad!
status: Statws
target_domain: Parth cyfrif a adroddir
title: Adroddiadau
unassign: Dadneilltuo
unresolved: Heb ei ddatrys
......
......@@ -553,7 +553,6 @@ da:
are_you_sure: Sikker?
assign_to_self: Tildel til mig
assigned: Tildelt moderator
by_target_domain: Domæne for anmeldt konto
comment:
none: Ingen
created_at: Anmeldt
......@@ -574,6 +573,7 @@ da:
resolved: Løst
resolved_msg: Anmeldelse er nu løst!
status: Status
target_domain: Domæne for anmeldt konto
target_origin: Anmeldte kontos oprindelse
title: Anmeldelser
unassign: Utildel
......
......@@ -535,7 +535,6 @@ de:
are_you_sure: Bist du dir sicher?
assign_to_self: Mir zuweisen
assigned: Zugewiesener Moderator
by_target_domain: Domain des gemeldeten Kontos
comment:
none: Kein
created_at: Gemeldet
......@@ -556,6 +555,7 @@ de:
resolved: Gelöst
resolved_msg: Meldung erfolgreich gelöst!
status: Zustand
target_domain: Domain des gemeldeten Kontos
target_origin: Domain des gemeldeten Kontos
title: Meldungen
unassign: Zuweisung entfernen
......
......@@ -452,7 +452,6 @@ el:
are_you_sure: Σίγουρα;
assign_to_self: Ανάθεση σε μένα
assigned: Αρμόδιος συντονιστής
by_target_domain: Κόμβος του λογαριασμού υπό καταγγελία
comment:
none: Κανένα
created_at: Καταγγέλθηκε
......@@ -473,6 +472,7 @@ el:
resolved: Επιλύθηκε
resolved_msg: Η καταγγελία επιλύθηκε επιτυχώς!
status: Κατάσταση
target_domain: Κόμβος του λογαριασμού υπό καταγγελία
title: Αναφορές
unassign: Αποσύνδεση
unresolved: Άλυτη
......
......@@ -561,7 +561,6 @@ en:
are_you_sure: Are you sure?
assign_to_self: Assign to me
assigned: Assigned moderator
by_target_domain: Domain of reported account
comment:
none: None
created_at: Reported
......@@ -582,6 +581,7 @@ en:
resolved: Resolved
resolved_msg: Report successfully resolved!
status: Status
target_domain: Domain of reported account
target_origin: Origin of reported account
title: Reports
unassign: Unassign
......
......@@ -475,7 +475,6 @@ eo:
are_you_sure: Ĉu vi certas?
assign_to_self: Asigni al mi
assigned: Asignita kontrolanto
by_target_domain: Domajno de la signalita konto
comment:
none: Nenio
created_at: Signalita
......@@ -496,6 +495,7 @@ eo:
resolved: Solvitaj
resolved_msg: Signalo sukcese solvita!
status: Mesaĝoj
target_domain: Domajno de la signalita konto
title: Signaloj
unassign: Malasigni
unresolved: Nesolvitaj
......
......@@ -535,7 +535,6 @@ es-AR:
are_you_sure: "¿Estás seguro?"
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta denunciada
comment:
none: Ninguno
created_at: Denunciado
......@@ -556,6 +555,7 @@ es-AR:
resolved: Resueltas
resolved_msg: "¡Denuncia exitosamente resuelta!"
status: Estado
target_domain: Dominio de la cuenta denunciada
target_origin: Origen de la cuenta denunciada
title: Denuncias
unassign: Desasignar
......
......@@ -535,7 +535,6 @@ es-MX:
are_you_sure: "¿Estás seguro?"
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta reportada
comment:
none: Ninguno
created_at: Denunciado
......@@ -556,6 +555,7 @@ es-MX:
resolved: Resuelto
resolved_msg: "¡La denuncia se ha resuelto correctamente!"
status: Estado
target_domain: Dominio de la cuenta reportada
target_origin: Origen de la cuenta reportada
title: Reportes
unassign: Desasignar
......
......@@ -554,7 +554,6 @@ es:
are_you_sure: "¿Estás seguro?"
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta reportada
comment:
none: Ninguno
created_at: Denunciado
......@@ -575,6 +574,7 @@ es:
resolved: Resuelto
resolved_msg: "¡La denuncia se ha resuelto correctamente!"
status: Estado
target_domain: Dominio de la cuenta reportada
target_origin: Origen de la cuenta reportada
title: Reportes
unassign: Desasignar
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment