feat: now create teh pending user
This commit is contained in:
parent
9c54a2f919
commit
dcb4969b27
3 changed files with 48 additions and 0 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -1967,6 +1967,7 @@ dependencies = [
|
|||
"async-std",
|
||||
"dotenv",
|
||||
"ldap3",
|
||||
"rand 0.8.5",
|
||||
"serde",
|
||||
"sqlx",
|
||||
"surf",
|
||||
|
|
|
@ -22,3 +22,6 @@ sqlx = { version = "0.6.3", features = [ "runtime-async-std-native-tls", "sqlite
|
|||
|
||||
# to make the http requests
|
||||
surf = "2.3.2"
|
||||
|
||||
# create random strings
|
||||
rand = "0.8.5"
|
||||
|
|
|
@ -97,6 +97,39 @@ pub async fn post_new_account(mut req: Request<State>) -> tide::Result {
|
|||
}
|
||||
}
|
||||
|
||||
// frontend now tells user to check their email
|
||||
|
||||
/*
|
||||
TODO:
|
||||
now check with wolves to see if the email is already activated
|
||||
use email as primary match
|
||||
then search up to see if teh wolves ID has a match
|
||||
if not generate tuhe user and send email
|
||||
*/
|
||||
|
||||
let auth_code = create_random_string(50);
|
||||
|
||||
// 1 hour expiry
|
||||
let expiry = get_now() + (60 * 60);
|
||||
|
||||
sqlx::query_as::<_, AccountsPending>(
|
||||
r#"
|
||||
INSERT OR REPLACE INTO accounts_pending (user, mail, name_first, name_second, auth_code, discord, expiry)
|
||||
VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7)
|
||||
"#,
|
||||
)
|
||||
.bind(&user)
|
||||
.bind(&mail)
|
||||
.bind(&name_first)
|
||||
.bind(&name_second)
|
||||
.bind(&auth_code)
|
||||
.bind(&discord)
|
||||
.bind(&expiry)
|
||||
.fetch_optional(pool)
|
||||
.await
|
||||
.ok();
|
||||
|
||||
// TODO: Send email with auth_code
|
||||
|
||||
Ok(json!({"result": "success"}).into())
|
||||
}
|
||||
|
@ -114,4 +147,15 @@ async fn db_pending_clear_expired(pool: &Pool<Sqlite>){
|
|||
).bind(now).fetch_all(pool).await {
|
||||
println!("{:?}", results)
|
||||
}
|
||||
}
|
||||
|
||||
fn create_random_string(length: usize) -> String {
|
||||
use rand::{thread_rng, Rng};
|
||||
use rand::distributions::Alphanumeric;
|
||||
|
||||
thread_rng()
|
||||
.sample_iter(&Alphanumeric)
|
||||
.take(length)
|
||||
.map(char::from)
|
||||
.collect()
|
||||
}
|
Loading…
Reference in a new issue