allow moving scheckbuch -> regular
This commit is contained in:
@ -1,8 +1,7 @@
|
||||
use super::member::Member;
|
||||
use super::regular::RegularUser;
|
||||
use super::{ManageUserUser, User};
|
||||
use crate::model::role::Role;
|
||||
use crate::model::user::LoginError;
|
||||
use crate::tera::admin::user::ScheckToRegularForm;
|
||||
use crate::NonEmptyString;
|
||||
use crate::{
|
||||
model::{mail::Mail, notification::Notification},
|
||||
special_user, SCHECKBUCH,
|
||||
@ -10,13 +9,7 @@ use crate::{
|
||||
use chrono::NaiveDate;
|
||||
use rocket::async_trait;
|
||||
use rocket::fs::TempFile;
|
||||
use rocket::http::Status;
|
||||
use rocket::request;
|
||||
use rocket::request::FromRequest;
|
||||
use rocket::request::Outcome;
|
||||
use rocket::Request;
|
||||
use sqlx::SqlitePool;
|
||||
use std::ops::Deref;
|
||||
|
||||
special_user!(ScheckbuchUser, +"scheckbuch");
|
||||
|
||||
@ -24,11 +17,12 @@ impl ScheckbuchUser {
|
||||
pub(crate) async fn convert_to_regular_user(
|
||||
self,
|
||||
db: &SqlitePool,
|
||||
smtp_pw: &str,
|
||||
changed_by: &ManageUserUser,
|
||||
member_since: &NaiveDate,
|
||||
birthdate: &NaiveDate,
|
||||
phone: &str,
|
||||
address: &str,
|
||||
phone: NonEmptyString,
|
||||
address: NonEmptyString,
|
||||
membership_pdf: &TempFile<'_>,
|
||||
) -> Result<(), String> {
|
||||
// Set data
|
||||
@ -36,9 +30,9 @@ impl ScheckbuchUser {
|
||||
self.user
|
||||
.update_member_since(db, changed_by, member_since)
|
||||
.await;
|
||||
self.user.update_phone(db, changed_by, phone).await?;
|
||||
self.user.update_address(db, changed_by, address).await?;
|
||||
self.user.update_address(db, changed_by, address).await?;
|
||||
|
||||
self.user.update_phone(db, changed_by, &phone).await;
|
||||
self.user.update_address(db, changed_by, &address).await;
|
||||
self.user
|
||||
.add_membership_pdf(db, changed_by, membership_pdf)
|
||||
.await?;
|
||||
@ -50,25 +44,13 @@ impl ScheckbuchUser {
|
||||
self.user.add_role(db, changed_by, ®ular).await?;
|
||||
|
||||
// Notify
|
||||
todo!() // Continue here
|
||||
let regular = RegularUser::new(db, &self.user).await.unwrap();
|
||||
regular.notify(db, smtp_pw).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
//async fn from(user: User, db: &SqlitePool, mail: &str, smtp_pw: &str) -> Result<(), String> {
|
||||
// if user.has_role(db, "scheckbuch").await {
|
||||
// return Err("User is already a scheckbuch".into());
|
||||
// }
|
||||
|
||||
// // TODO: do we allow e.g. DonauLinz to scheckbuch?
|
||||
|
||||
// let scheckbuch = Role::find_by_name(db, "scheckbuch").await.unwrap();
|
||||
// user.add_role(db, &scheckbuch).await.unwrap();
|
||||
|
||||
// // TODO: remove all other `membership_type` roles
|
||||
// let new_user = Self::new(db, &user).await.unwrap();
|
||||
|
||||
// new_user.notify(db, mail, smtp_pw).await
|
||||
//}
|
||||
|
||||
// TODO: make private
|
||||
pub(crate) async fn notify(
|
||||
&self,
|
||||
db: &SqlitePool,
|
||||
|
Reference in New Issue
Block a user