allow to change from schnupperant to scheckbuch
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
use super::foerdernd::FoerderndUser;
|
||||
use super::regular::RegularUser;
|
||||
use super::scheckbuch::ScheckbuchUser;
|
||||
use super::unterstuetzend::UnterstuetzendUser;
|
||||
use super::{ManageUserUser, User};
|
||||
use crate::model::role::Role;
|
||||
@@ -86,6 +87,34 @@ impl SchnupperantUser {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) async fn move_to_scheckbook(
|
||||
self,
|
||||
db: &SqlitePool,
|
||||
changed_by: &ManageUserUser,
|
||||
smtp_pw: &str,
|
||||
) -> Result<(), String> {
|
||||
let schnupperant = Role::find_by_name(db, "schnupperant").await.unwrap();
|
||||
let scheckbook = Role::find_by_name(db, "scheckbuch").await.unwrap();
|
||||
self.user.remove_role(db, changed_by, &schnupperant).await?;
|
||||
self.user.add_role(db, changed_by, &scheckbook).await?;
|
||||
|
||||
let scheckbook = ScheckbuchUser::new(db, &self.user).await.unwrap();
|
||||
scheckbook.send_welcome_mail_to_user(db, smtp_pw).await?;
|
||||
|
||||
Notification::create_for_steering_people(
|
||||
db,
|
||||
&format!(
|
||||
"Liebe Steuerberechtigte, {} hat unseren Schnupperkurs absolviert und nun ein Scheckbuch. Wie immer, freuen wir uns wenn du uns beim A+F Rudern unterstützt oder selber Ausfahrten ausschreibst. Bitte beachte, dass Scheckbuch-Personen nur Ausfahrten sehen, bei denen 'Scheckbuch-Anmeldungen erlauben' ausgewählt wurde.",
|
||||
self.name
|
||||
),
|
||||
"Neues Scheckbuch",
|
||||
None,None
|
||||
)
|
||||
.await;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) async fn convert_to_unterstuetzend_user(
|
||||
self,
|
||||
db: &SqlitePool,
|
||||
@@ -195,8 +224,8 @@ impl SchnupperantUser {
|
||||
mail: &str,
|
||||
smtp_pw: &str,
|
||||
) -> Result<(), String> {
|
||||
self.send_welcome_mail_to_user(db, mail, smtp_pw).await?;
|
||||
self.notify_coxes_about_new_scheckbuch(db).await;
|
||||
self.send_welcome_mail_to_user(db, mail, smtp_pw).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@@ -226,10 +255,11 @@ ASKÖ Ruderverein Donau Linz", self.name),
|
||||
|
||||
async fn notify_coxes_about_new_scheckbuch(&self, db: &SqlitePool) {
|
||||
if let Some(role) = Role::find_by_name(db, "schnupper-betreuer").await {
|
||||
Notification::create_for_steering_people(
|
||||
Notification::create_for_role(
|
||||
db,
|
||||
&role,
|
||||
&format!(
|
||||
"Lieber Schnupperbetreuer, {} hat zum Schnupperkurz angemeldet.",
|
||||
"Lieber Schnupperbetreuer, {} hat sich zum Schnupperkurs angemeldet.",
|
||||
self.name
|
||||
),
|
||||
"Neuer Schnupperant",
|
||||
|
Reference in New Issue
Block a user