Can log actions in JSON format
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-10-28 11:43:07 +01:00
parent a128e4a597
commit 2a729d4153
12 changed files with 261 additions and 117 deletions

View File

@@ -165,7 +165,10 @@ pub async fn users_route(
let factors_to_keep = update.0.two_factor.split(';').collect::<Vec<_>>();
for factor in &edited_user.two_factor {
if !factors_to_keep.contains(&factor.id.0.as_str()) {
logger.log(Action::AdminRemoveUserFactor(&edited_user, factor));
logger.log(Action::AdminRemoveUserFactor {
user: edited_user.loggable(),
factor: factor.loggable(),
});
users
.send(users_actor::Remove2FAFactor(
edited_user.uid.clone(),
@@ -186,10 +189,10 @@ pub async fn users_route(
};
if edited_user.authorized_authentication_sources() != auth_sources {
logger.log(Action::AdminSetAuthorizedAuthenticationSources(
&edited_user,
&auth_sources,
));
logger.log(Action::AdminSetAuthorizedAuthenticationSources {
user: edited_user.loggable(),
sources: &auth_sources,
});
users
.send(users_actor::SetAuthorizedAuthenticationSources(
edited_user.uid.clone(),
@@ -216,10 +219,10 @@ pub async fn users_route(
};
if edited_user.granted_clients() != granted_clients {
logger.log(Action::AdminSetNewGrantedClientsList(
&edited_user,
&granted_clients,
));
logger.log(Action::AdminSetNewGrantedClientsList {
user: edited_user.loggable(),
clients: &granted_clients,
});
users
.send(users_actor::SetGrantedClients(
edited_user.uid.clone(),
@@ -231,7 +234,9 @@ pub async fn users_route(
// Clear user 2FA history if requested
if update.0.clear_2fa_history.is_some() {
logger.log(Action::AdminClear2FAHistory(&edited_user));
logger.log(Action::AdminClear2FAHistory {
user: edited_user.loggable(),
});
users
.send(users_actor::Clear2FALoginHistory(edited_user.uid.clone()))
.await
@@ -242,7 +247,9 @@ pub async fn users_route(
let new_password = match update.0.gen_new_password.is_some() {
false => None,
true => {
logger.log(Action::AdminResetUserPassword(&edited_user));
logger.log(Action::AdminResetUserPassword {
user: edited_user.loggable(),
});
let temp_pass = rand_str(TEMPORARY_PASSWORDS_LEN);
users
@@ -269,11 +276,15 @@ pub async fn users_route(
} else {
success = Some(match is_creating {
true => {
logger.log(Action::AdminCreateUser(&edited_user));
logger.log(Action::AdminCreateUser {
user: edited_user.loggable(),
});
format!("User {} was successfully created!", edited_user.full_name())
}
false => {
logger.log(Action::AdminUpdateUser(&edited_user));
logger.log(Action::AdminUpdateUser {
user: edited_user.loggable(),
});
format!("User {} was successfully updated!", edited_user.full_name())
}
});