single-user-edit-page #990
| @@ -414,12 +414,14 @@ impl User { | |||||||
|         .await |         .await | ||||||
|         .unwrap(); |         .unwrap(); | ||||||
|  |  | ||||||
|         ActivityBuilder::new(&format!( |         if !role.hide_in_lists && role.cluster.is_none() { | ||||||
|             "{updated_by} hat die Rolle {role} von {self} entfernt." |             ActivityBuilder::new(&format!( | ||||||
|         )) |                 "{updated_by} hat die Rolle {role} von {self} entfernt." | ||||||
|         .relevant_for_user(self) |             )) | ||||||
|         .save(db) |             .relevant_for_user(self) | ||||||
|         .await; |             .save(db) | ||||||
|  |             .await; | ||||||
|  |         } | ||||||
|  |  | ||||||
|         Ok(()) |         Ok(()) | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -7,11 +7,11 @@ use crate::{ | |||||||
|         mail::valid_mails, |         mail::valid_mails, | ||||||
|         role::Role, |         role::Role, | ||||||
|         user::{ |         user::{ | ||||||
|             AdminUser, AllowedToEditPaymentStatusUser, ManageUserUser, User, UserWithDetails, |  | ||||||
|             UserWithMembershipPdf, UserWithRolesAndMembershipPdf, VorstandUser, |  | ||||||
|             clubmember::ClubMemberUser, foerdernd::FoerderndUser, member::Member, |             clubmember::ClubMemberUser, foerdernd::FoerderndUser, member::Member, | ||||||
|             regular::RegularUser, scheckbuch::ScheckbuchUser, schnupperant::SchnupperantUser, |             regular::RegularUser, scheckbuch::ScheckbuchUser, schnupperant::SchnupperantUser, | ||||||
|             schnupperinterest::SchnupperInterestUser, unterstuetzend::UnterstuetzendUser, |             schnupperinterest::SchnupperInterestUser, unterstuetzend::UnterstuetzendUser, | ||||||
|  |             AdminUser, AllowedToEditPaymentStatusUser, ManageUserUser, User, UserWithDetails, | ||||||
|  |             UserWithMembershipPdf, UserWithRolesAndMembershipPdf, VorstandUser, | ||||||
|         }, |         }, | ||||||
|     }, |     }, | ||||||
|     tera::Config, |     tera::Config, | ||||||
| @@ -19,7 +19,6 @@ use crate::{ | |||||||
| use chrono::NaiveDate; | use chrono::NaiveDate; | ||||||
| use futures::future::join_all; | use futures::future::join_all; | ||||||
| use rocket::{ | use rocket::{ | ||||||
|     FromForm, Request, Route, State, |  | ||||||
|     form::Form, |     form::Form, | ||||||
|     fs::TempFile, |     fs::TempFile, | ||||||
|     get, |     get, | ||||||
| @@ -27,9 +26,9 @@ use rocket::{ | |||||||
|     post, |     post, | ||||||
|     request::{FlashMessage, FromRequest, Outcome}, |     request::{FlashMessage, FromRequest, Outcome}, | ||||||
|     response::{Flash, Redirect}, |     response::{Flash, Redirect}, | ||||||
|     routes, |     routes, FromForm, Request, Route, State, | ||||||
| }; | }; | ||||||
| use rocket_dyn_templates::{Template, tera::Context}; | use rocket_dyn_templates::{tera::Context, Template}; | ||||||
| use sqlx::SqlitePool; | use sqlx::SqlitePool; | ||||||
|  |  | ||||||
| // Custom request guard to extract the Referer header | // Custom request guard to extract the Referer header | ||||||
| @@ -133,6 +132,12 @@ async fn view( | |||||||
|             format!("User mit ID {} gibts ned", user), |             format!("User mit ID {} gibts ned", user), | ||||||
|         )); |         )); | ||||||
|     }; |     }; | ||||||
|  |     if user.name == "Externe Steuerperson" { | ||||||
|  |         return Err(Flash::error( | ||||||
|  |             Redirect::to("/admin/user"), | ||||||
|  |             "Diese besondere Person kannst du dir leider nicht anschauen, mein lieber neugieriger Ruderant!" | ||||||
|  |         )); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     let member = Member::from(db, user.clone()).await; |     let member = Member::from(db, user.clone()).await; | ||||||
|     let fee = user.fee(db).await; |     let fee = user.fee(db).await; | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| use std::net::IpAddr; | use std::net::IpAddr; | ||||||
|  |  | ||||||
| use rocket::{ | use rocket::{ | ||||||
|     Request, Route, State, |  | ||||||
|     form::Form, |     form::Form, | ||||||
|     get, |     get, | ||||||
|     http::{Cookie, CookieJar}, |     http::{Cookie, CookieJar}, | ||||||
| @@ -10,8 +9,9 @@ use rocket::{ | |||||||
|     response::{Flash, Redirect}, |     response::{Flash, Redirect}, | ||||||
|     routes, |     routes, | ||||||
|     time::{Duration, OffsetDateTime}, |     time::{Duration, OffsetDateTime}, | ||||||
|  |     Request, Route, State, | ||||||
| }; | }; | ||||||
| use rocket_dyn_templates::{Template, context}; | use rocket_dyn_templates::{context, Template}; | ||||||
| use sqlx::SqlitePool; | use sqlx::SqlitePool; | ||||||
| use tera::Context; | use tera::Context; | ||||||
|  |  | ||||||
| @@ -110,10 +110,13 @@ async fn index( | |||||||
| #[get("/show", rank = 3)] | #[get("/show", rank = 3)] | ||||||
| async fn show(db: &State<SqlitePool>, user: DonauLinzUser) -> Template { | async fn show(db: &State<SqlitePool>, user: DonauLinzUser) -> Template { | ||||||
|     let logs = Logbook::completed(db).await; |     let logs = Logbook::completed(db).await; | ||||||
|  |     let boats = Boat::all(db).await; | ||||||
|  |     let users = User::all(db).await; | ||||||
|  |     let logtypes = LogType::all(db).await; | ||||||
|  |  | ||||||
|     Template::render( |     Template::render( | ||||||
|         "log.completed", |         "log.completed", | ||||||
|         context!(logs, loggedin_user: &UserWithDetails::from_user(user.into_inner(), db).await), |         context!(logs, boats, users, logtypes, loggedin_user: &UserWithDetails::from_user(user.into_inner(), db).await), | ||||||
|     ) |     ) | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -582,7 +585,7 @@ mod test { | |||||||
|     use sqlx::SqlitePool; |     use sqlx::SqlitePool; | ||||||
|  |  | ||||||
|     use crate::model::logbook::Logbook; |     use crate::model::logbook::Logbook; | ||||||
|     use crate::tera::{User, log::Boat}; |     use crate::tera::{log::Boat, User}; | ||||||
|     use crate::testdb; |     use crate::testdb; | ||||||
|  |  | ||||||
|     #[sqlx::test] |     #[sqlx::test] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user