|
|
|
@ -37,10 +37,11 @@ use crate::{
|
|
|
|
|
|
|
|
|
|
use super::pdu::PduBuilder;
|
|
|
|
|
|
|
|
|
|
#[cfg_attr(test, derive(Debug))]
|
|
|
|
|
#[derive(Parser)]
|
|
|
|
|
#[clap(name = "@conduit:server.name:", version = env!("CARGO_PKG_VERSION"))]
|
|
|
|
|
#[command(name = "@conduit:server.name:", version = env!("CARGO_PKG_VERSION"))]
|
|
|
|
|
enum AdminCommand {
|
|
|
|
|
#[clap(verbatim_doc_comment)]
|
|
|
|
|
#[command(verbatim_doc_comment)]
|
|
|
|
|
/// Register an appservice using its registration YAML
|
|
|
|
|
///
|
|
|
|
|
/// This command needs a YAML generated by an appservice (such as a bridge),
|
|
|
|
@ -80,12 +81,12 @@ enum AdminCommand {
|
|
|
|
|
/// User will not be removed from all rooms by default.
|
|
|
|
|
/// Use --leave-rooms to force the user to leave all rooms
|
|
|
|
|
DeactivateUser {
|
|
|
|
|
#[clap(short, long)]
|
|
|
|
|
#[arg(short, long)]
|
|
|
|
|
leave_rooms: bool,
|
|
|
|
|
user_id: Box<UserId>,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
#[clap(verbatim_doc_comment)]
|
|
|
|
|
#[command(verbatim_doc_comment)]
|
|
|
|
|
/// Deactivate a list of users
|
|
|
|
|
///
|
|
|
|
|
/// Recommended to use in conjunction with list-local-users.
|
|
|
|
@ -100,10 +101,10 @@ enum AdminCommand {
|
|
|
|
|
/// # User list here
|
|
|
|
|
/// # ```
|
|
|
|
|
DeactivateAll {
|
|
|
|
|
#[clap(short, long)]
|
|
|
|
|
#[arg(short, long)]
|
|
|
|
|
/// Remove users from their joined rooms
|
|
|
|
|
leave_rooms: bool,
|
|
|
|
|
#[clap(short, long)]
|
|
|
|
|
#[arg(short, long)]
|
|
|
|
|
/// Also deactivate admin accounts
|
|
|
|
|
force: bool,
|
|
|
|
|
},
|
|
|
|
@ -114,7 +115,7 @@ enum AdminCommand {
|
|
|
|
|
event_id: Box<EventId>,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
#[clap(verbatim_doc_comment)]
|
|
|
|
|
#[command(verbatim_doc_comment)]
|
|
|
|
|
/// Parse and print a PDU from a JSON
|
|
|
|
|
///
|
|
|
|
|
/// The PDU event is only checked for validity and is not added to the
|
|
|
|
@ -1160,3 +1161,34 @@ impl Service {
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
|
mod test {
|
|
|
|
|
use super::*;
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn get_help_short() {
|
|
|
|
|
get_help_inner("-h");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn get_help_long() {
|
|
|
|
|
get_help_inner("--help");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn get_help_subcommand() {
|
|
|
|
|
get_help_inner("help");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn get_help_inner(input: &str) {
|
|
|
|
|
let error = AdminCommand::try_parse_from(["argv[0] doesn't matter", input])
|
|
|
|
|
.unwrap_err()
|
|
|
|
|
.to_string();
|
|
|
|
|
|
|
|
|
|
// Search for a handful of keywords that suggest the help printed properly
|
|
|
|
|
assert!(error.contains("Usage:"));
|
|
|
|
|
assert!(error.contains("Commands:"));
|
|
|
|
|
assert!(error.contains("Options:"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|