diff --git a/src/model/user/mod.rs b/src/model/user/mod.rs index f04b779..07466f9 100644 --- a/src/model/user/mod.rs +++ b/src/model/user/mod.rs @@ -933,7 +933,7 @@ impl<'r> FromRequest<'r> for User { #[macro_export] macro_rules! special_user { ($name:ident, $($role:tt)*) => { - #[derive(Debug)] + #[derive(Debug, serde::Serialize, serde::Deserialize)] pub struct $name { pub(crate) user: User, } @@ -1015,6 +1015,7 @@ special_user!(AllowedToEditPaymentStatusUser, +"kassier", +"admin"); special_user!(ManageUserUser, +"admin", +"schriftfuehrer"); special_user!(AllowedToSendFeeReminderUser, +"admin", +"schriftfuehrer", +"kassier"); special_user!(AllowedToUpdateTripToAlwaysBeShownUser, +"admin"); +special_user!(ClubMember, +"Donau Linz"); #[derive(FromRow, Serialize, Deserialize, Clone, Debug)] pub struct UserWithRolesAndMembershipPdf { diff --git a/src/tera/admin/user.rs b/src/tera/admin/user.rs index b1d2531..ded3efc 100644 --- a/src/tera/admin/user.rs +++ b/src/tera/admin/user.rs @@ -7,8 +7,8 @@ use crate::{ logbook::Logbook, role::Role, user::{ - AdminUser, AllowedToEditPaymentStatusUser, ManageUserUser, User, UserWithDetails, - UserWithMembershipPdf, UserWithRolesAndMembershipPdf, VorstandUser, + AdminUser, AllowedToEditPaymentStatusUser, ClubMember, ManageUserUser, User, + UserWithDetails, UserWithMembershipPdf, UserWithRolesAndMembershipPdf, VorstandUser, }, }, tera::Config, @@ -121,10 +121,12 @@ async fn view( ) -> Result> { let Some(user) = User::find_by_id(db, user).await else { return Err(Flash::error( - Redirect::to("/admin/usert"), + Redirect::to("/admin/user"), format!("User mit ID {} gibts ned", user), )); }; + let clubmember = ClubMember::new(db, &user).await; + let user = UserWithRolesAndMembershipPdf::from_user(db, user).await; let admin: User = admin.into_inner(); @@ -139,6 +141,7 @@ async fn view( } context.insert("allowed_to_edit", &allowed_to_edit); context.insert("user", &user); + context.insert("clubmember", &clubmember); context.insert("roles", &roles); context.insert("families", &families); context.insert( diff --git a/templates/admin/user/view.html.tera b/templates/admin/user/view.html.tera index 67bd9fc..7a6e41a 100644 --- a/templates/admin/user/view.html.tera +++ b/templates/admin/user/view.html.tera @@ -90,6 +90,7 @@ + {% if clubmember %} + {% endif %}