diff --git a/src/web/pages/persons.rs b/src/web/pages/persons.rs index 6b1c63a..05a00af 100644 --- a/src/web/pages/persons.rs +++ b/src/web/pages/persons.rs @@ -9,6 +9,7 @@ use serde::Deserialize; use crate::{ api::CompositeError, + logs::{LogAction, LogEntry}, persons::Person, users::{ User, @@ -95,6 +96,13 @@ pub async fn create( Form(form): Form, ) -> Result { let u = User::authenticate(&headers)?.required()?; - Person::create(form.primary_name, u.id)?; + let p = Person::create(form.primary_name, u.id)?; + LogEntry::new( + u, + LogAction::CreatePerson { + id: p.id, + pname: p.primary_name, + }, + )?; Ok(Redirect::to("/persons").into_response()) } diff --git a/src/web/pages/tags.rs b/src/web/pages/tags.rs index d2ef7e4..48dc966 100644 --- a/src/web/pages/tags.rs +++ b/src/web/pages/tags.rs @@ -9,6 +9,7 @@ use serde::Deserialize; use crate::{ api::CompositeError, + logs::{LogAction, LogEntry}, tags::{Tag, TagName}, users::{ User, @@ -94,7 +95,14 @@ pub async fn create( headers: HeaderMap, Form(form): Form, ) -> Result { - User::authenticate(&headers)?.required()?; - Tag::create(form.tagname)?; + let u = User::authenticate(&headers)?.required()?; + let t = Tag::create(form.tagname)?; + LogEntry::new( + u, + LogAction::CreateTag { + id: t.id, + name: t.name.to_string(), + }, + )?; Ok(Redirect::to("/tags").into_response()) } diff --git a/src/web/pages/users/create.rs b/src/web/pages/users/create.rs index 61b83b6..2494610 100644 --- a/src/web/pages/users/create.rs +++ b/src/web/pages/users/create.rs @@ -9,6 +9,7 @@ use serde::Deserialize; use crate::{ api::CompositeError, + logs::{LogAction, LogEntry}, users::{ User, auth::{AuthError, UserAuthRequired, UserAuthenticate}, @@ -75,5 +76,12 @@ pub async fn create_user( } let mut nu = User::create(form.handle)?; nu.set_password(Some(&form.password))?; + LogEntry::new( + u, + LogAction::CreateUser { + id: nu.id, + handle: nu.handle.as_str().to_string(), + }, + )?; Ok(Redirect::to("/users").into_response()) } diff --git a/src/web/pages/usersettings.rs b/src/web/pages/usersettings.rs index 4248696..2315288 100644 --- a/src/web/pages/usersettings.rs +++ b/src/web/pages/usersettings.rs @@ -9,6 +9,7 @@ use serde::Deserialize; use crate::{ api::CompositeError, + logs::{LogAction, LogEntry}, users::{ User, auth::{AuthError, UserAuthRequired, UserAuthenticate}, @@ -80,7 +81,16 @@ pub async fn change_handle( Form(form): Form, ) -> Result { let mut u = User::authenticate(&headers)?.required()?; + let oldhandle = u.handle.as_str().to_string(); u.set_handle(form.handle)?; + LogEntry::new( + u.clone(), + LogAction::ChangeUserHandle { + id: u.id, + old: oldhandle, + new: u.handle.as_str().to_string(), + }, + )?; Ok(Redirect::to("/user-settings").into_response()) }