From 55ef6ddde295ba3251394dc51df76425deca085d Mon Sep 17 00:00:00 2001 From: BAaboe Date: Tue, 5 Aug 2025 12:30:39 +0200 Subject: [PATCH] feat: audit log on role creation --- src/api/v1/guilds/uuid/roles/mod.rs | 9 ++++----- src/objects/role.rs | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/api/v1/guilds/uuid/roles/mod.rs b/src/api/v1/guilds/uuid/roles/mod.rs index d3660ce..6b8ac58 100644 --- a/src/api/v1/guilds/uuid/roles/mod.rs +++ b/src/api/v1/guilds/uuid/roles/mod.rs @@ -10,11 +10,7 @@ use axum::{ use serde::Deserialize; use crate::{ - AppState, - api::v1::auth::CurrentUser, - error::Error, - objects::{Member, Permissions, Role}, - utils::{CacheFns, global_checks, order_by_is_above}, + api::v1::auth::CurrentUser, error::Error, objects::{AuditLog, AuditLogId, Member, Permissions, Role}, utils::{global_checks, order_by_is_above, CacheFns}, AppState }; pub mod uuid; @@ -71,7 +67,10 @@ pub async fn create( .check_permission(&mut conn, &app_state.cache_pool, Permissions::ManageRole) .await?; + // TODO: roles permission let role = Role::new(&mut conn, guild_uuid, role_info.name.clone()).await?; + AuditLog::new(guild_uuid, AuditLogId::RoleCreate as i16, member.uuid, None, None, None, Some(role.uuid), Some(role_info.name.clone()) , None, None).await.push(&mut conn).await?; + Ok((StatusCode::OK, Json(role)).into_response()) } diff --git a/src/objects/role.rs b/src/objects/role.rs index cc71fb2..88749a8 100644 --- a/src/objects/role.rs +++ b/src/objects/role.rs @@ -21,9 +21,9 @@ use super::{HasIsAbove, HasUuid, load_or_empty, member::MemberBuilder}; #[diesel(primary_key(uuid))] #[diesel(check_for_backend(diesel::pg::Pg))] pub struct Role { - uuid: Uuid, + pub uuid: Uuid, guild_uuid: Uuid, - name: String, + pub name: String, color: i32, is_above: Option, pub permissions: i64,