new newbie flag

This commit is contained in:
2026-06-04 19:49:16 +02:00
parent 0e1973fbac
commit c940ce0fdc
17 changed files with 114 additions and 28 deletions
+10 -5
View File
@@ -112,6 +112,7 @@ impl UserWithDetails {
self.roles.contains(&"Donau Linz".into())
|| self.roles.contains(&"Förderndes Mitglied".into())
|| self.roles.contains(&"scheckbuch".into())
|| self.roles.contains(&"Vereinsneuling".into())
|| self.user.name == "Externe Steuerperson"
}
}
@@ -598,18 +599,22 @@ ASKÖ Ruderverein Donau Linz", self.name),
pub async fn get_days(&self, db: &SqlitePool) -> Vec<Day> {
let mut days = Vec::new();
for i in 0..self.amount_days_to_show(db).await {
let roles = self.roles(db).await;
let is_beginner = roles.contains(&"scheckbuch".to_string())
|| roles.contains(&"Vereinsneuling".to_string());
let days_to_show = self.amount_days_to_show(db).await;
for i in 0..days_to_show {
let date = (Local::now() + chrono::Duration::days(i)).date_naive();
if self.has_role(db, "scheckbuch").await {
if is_beginner {
days.push(Day::new_guest(db, date, false).await);
} else {
days.push(Day::new(db, date, false).await);
}
}
for date in TripDetails::pinned_days(db, self.amount_days_to_show(db).await - 1).await {
if self.has_role(db, "scheckbuch").await {
for date in TripDetails::pinned_days(db, days_to_show - 1).await {
if is_beginner {
let day = Day::new_guest(db, date, true).await;
if !day.events.is_empty() {
days.push(day);
@@ -868,7 +873,7 @@ special_user!(TechUser, +"tech");
special_user!(ErgoUser, +"ergo");
special_user!(SteeringUser, +"cox", +"Bootsführer");
special_user!(AdminUser, +"admin");
special_user!(AllowedForPlannedTripsUser, +"Donau Linz", +"scheckbuch", +"Förderndes Mitglied");
special_user!(AllowedForPlannedTripsUser, +"Donau Linz", +"scheckbuch", +"Förderndes Mitglied", +"Vereinsneuling");
special_user!(DonauLinzUser, +"Donau Linz", +"Förderndes Mitglied", -"Unterstützend"); // TODO:
// remove ->
// RegularUser