Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions config.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ embed_color = "ffb800"
[logs]
show_log_on_edit = true
show_log_on_delete = true
hide_ticket_rename_logs = false

[updates]
enabled = true
Expand Down
25 changes: 23 additions & 2 deletions crates/rustmail/src/handlers/guild_moderation_handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ use crate::prelude::db::*;
use crate::prelude::features::*;
use crate::prelude::i18n::*;
use crate::prelude::utils::*;
use serenity::all::audit_log::Action;
use serenity::all::audit_log::{Action, Change};
use serenity::all::{ButtonStyle, ChannelAction};
use serenity::{
all::{AuditLogEntry, ChannelId, Context, EventHandler, GuildId},
all::{AuditLogEntry, ChannelId, Context, EventHandler, GuildId, UserId},
async_trait,
};

Expand Down Expand Up @@ -90,6 +90,21 @@ async fn manage_creating_ticket_via_opening_thread(
.await;
}

fn is_bot_channel_rename(entry: &AuditLogEntry, bot_id: UserId) -> bool {
let Action::Channel(ChannelAction::Update) = entry.action else {
return false;
};
if entry.user_id != bot_id {
return false;
}
match entry.changes.as_deref() {
Some(changes) if !changes.is_empty() => changes
.iter()
.all(|change| matches!(change, Change::Name { .. })),
_ => false,
}
}

#[async_trait]
impl EventHandler for GuildModerationHandler {
async fn guild_audit_log_entry_create(
Expand Down Expand Up @@ -118,6 +133,12 @@ impl EventHandler for GuildModerationHandler {
None => return,
};

if self.config.logs.hide_ticket_rename_logs
&& is_bot_channel_rename(&entry, ctx.cache.current_user().id)
{
return;
}

let user = match entry.user_id.to_user(ctx.clone()).await {
Ok(user) => user,
Err(_) => {
Expand Down
13 changes: 13 additions & 0 deletions crates/rustmail_panel/src/components/configuration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1637,6 +1637,19 @@ fn logs_reminder_section(props: &LogsReminderSectionProps) -> Html {
}}
/>

<CheckboxInput
label={i18n.t("panel.configuration.logs.hide_ticket_renames")}
checked={config.logs.hide_ticket_rename_logs}
on_change={{
let config = config.clone();
Callback::from(move |val: bool| {
let mut cfg = (*config).clone();
cfg.logs.hide_ticket_rename_logs = val;
config.set(cfg);
})
}}
/>

<h4 class="text-md font-semibold text-white border-b border-slate-600 pb-2 mt-6">{i18n.t("panel.configuration.reminders.title")}</h4>

<ColorInput
Expand Down
3 changes: 2 additions & 1 deletion crates/rustmail_panel/src/i18n/en/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"logs": {
"title": "Logs",
"show_edit": "Show Log on Edit",
"show_delete": "Show Log on Delete"
"show_delete": "Show Log on Delete",
"hide_ticket_renames": "Hide Ticket Rename Logs"
},
"reminders": {
"title": "Reminders",
Expand Down
3 changes: 2 additions & 1 deletion crates/rustmail_panel/src/i18n/fr/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,8 @@
"logs": {
"title": "Logs",
"show_edit": "Afficher log sur édition",
"show_delete": "Afficher log sur suppression"
"show_delete": "Afficher log sur suppression",
"hide_ticket_renames": "Masquer les logs de renommage des tickets"
},
"reminders": {
"title": "Rappels",
Expand Down
3 changes: 3 additions & 0 deletions crates/rustmail_types/src/config/logs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,16 @@ use serde::{Deserialize, Serialize};
pub struct LogsConfig {
pub show_log_on_edit: bool,
pub show_log_on_delete: bool,
#[serde(default)]
pub hide_ticket_rename_logs: bool,
}

impl Default for LogsConfig {
fn default() -> Self {
Self {
show_log_on_edit: true,
show_log_on_delete: true,
hide_ticket_rename_logs: false,
}
}
}
1 change: 1 addition & 0 deletions docs/getting-started/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,7 @@ show_success_on_delete = false
[logs]
show_log_on_edit = true
show_log_on_delete = true
hide_ticket_rename_logs = false

[reminders]
embed_color = "ffb800"
Expand Down
2 changes: 2 additions & 0 deletions docs/reference/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@ Control what actions are logged.
|----------------------|------|----------|---------|-----------------------|
| `show_log_on_edit` | bool | Yes | `true` | Log message edits |
| `show_log_on_delete` | bool | Yes | `true` | Log message deletions |
| `hide_ticket_rename_logs` | bool | No | `false` | Hide audit logs for ticket channel renames made by the bot (status and elapsed time) |

---

Expand Down Expand Up @@ -340,6 +341,7 @@ show_error = true
[logs]
show_log_on_edit = true
show_log_on_delete = true
hide_ticket_rename_logs = false

[reminders]
embed_color = "ffb800"
Expand Down