Add ReportServ, wired into the audit trail

Any user can REPORT <nick|#channel> <reason>; filing is rate-limited per
reporter. Reports are an event-sourced, federated queue operators review
with LIST / VIEW / CLOSE / DEL. The interconnection: because a filed report
is an event, the engine's audit feed already announces it to the staff
channel and records it in the searchable action log — so OperServ
LOGSEARCH finds a report by any word in it, tying reports into the same
trail as bans, kicks, and everything else. Opt-in (add "reportserv").
This commit is contained in:
Jean Chevronnet 2026-07-14 04:02:51 +00:00
parent 8d495a948e
commit 5b023c22a4
No known key found for this signature in database
9 changed files with 346 additions and 9 deletions

View file

@ -23,6 +23,7 @@ use fedserv_hostserv::HostServ;
use fedserv_operserv::OperServ;
use fedserv_diceserv::DiceServ;
use fedserv_infoserv::InfoServ;
use fedserv_reportserv::ReportServ;
use fedserv_example::ExampleServ;
use fedserv_inspircd::InspIrcd;
use fedserv_nickserv::NickServ;
@ -101,6 +102,11 @@ async fn main() -> Result<()> {
uid: format!("{}AAAAAJ", cfg.server.sid),
}));
}
if enabled("reportserv") {
services.push(Box::new(ReportServ {
uid: format!("{}AAAAAK", cfg.server.sid),
}));
}
if enabled("example") {
services.push(Box::new(ExampleServ {
uid: format!("{}AAAAAC", cfg.server.sid),