diff --git a/src/main.rs b/src/main.rs index c9b18be1..57ecff65 100644 --- a/src/main.rs +++ b/src/main.rs @@ -73,8 +73,6 @@ fn main() { routes::comments::create, routes::instance::index, - routes::instance::configure, - routes::instance::post_config, routes::instance::shared_inbox, routes::instance::nodeinfo, diff --git a/src/models/users.rs b/src/models/users.rs index 5b5b1c10..66b05b6b 100644 --- a/src/models/users.rs +++ b/src/models/users.rs @@ -485,16 +485,16 @@ impl Signer for User { impl NewUser { /// Creates a new local user pub fn new_local( + conn: &PgConnection, username: String, display_name: String, is_admin: bool, summary: String, email: String, - password: String, - instance_id: i32 - ) -> NewUser { + password: String + ) -> User { let (pub_key, priv_key) = gen_keypair(); - NewUser { + User::insert(conn, NewUser { username: username, display_name: display_name, outbox_url: String::from(""), @@ -503,11 +503,11 @@ impl NewUser { summary: SafeString::new(&summary), email: Some(email), hashed_password: Some(password), - instance_id: instance_id, + instance_id: Instance::local_id(conn), ap_url: String::from(""), public_key: String::from_utf8(pub_key).unwrap(), private_key: Some(String::from_utf8(priv_key).unwrap()), shared_inbox_url: None - } + }) } } diff --git a/src/routes/instance.rs b/src/routes/instance.rs index be1deb42..c8688dc7 100644 --- a/src/routes/instance.rs +++ b/src/routes/instance.rs @@ -33,31 +33,6 @@ fn index(conn: DbConn, user: Option) -> Template { } } -#[get("/configure")] -fn configure() -> Template { - Template::render("instance/configure", json!({})) -} - -#[derive(FromForm)] -struct NewInstanceForm { - name: String -} - -#[post("/configure", data = "")] -fn post_config(conn: DbConn, data: Form) -> Redirect { - let form = data.get(); - let inst = Instance::insert(&*conn, NewInstance { - public_domain: BASE_URL.as_str().to_string(), - name: form.name.to_string(), - local: true - }); - if inst.has_admin(&*conn) { - Redirect::to("/") - } else { - Redirect::to("/users/new") - } -} - #[post("/inbox", data = "")] fn shared_inbox(conn: DbConn, data: String) -> String { let act: serde_json::Value = serde_json::from_str(&data[..]).unwrap(); diff --git a/src/routes/user.rs b/src/routes/user.rs index 6b925c87..da0554fc 100644 --- a/src/routes/user.rs +++ b/src/routes/user.rs @@ -164,7 +164,6 @@ struct NewUserForm { #[post("/users/new", data = "")] fn create(conn: DbConn, data: Form) -> Result { - let inst = Instance::get_local(&*conn).unwrap(); let form = data.get(); if form.username.clone().len() < 1 { @@ -174,15 +173,15 @@ fn create(conn: DbConn, data: Form) -> Result { } else if form.password.clone().len() < 8 { Err(String::from("Password should be at least 8 characters long")) } else if form.password == form.password_confirmation { - User::insert(&*conn, NewUser::new_local( + NewUser::new_local( + &*conn, form.username.to_string(), form.username.to_string(), - !inst.has_admin(&*conn), + false, String::from(""), form.email.to_string(), - User::hash_pass(form.password.to_string()), - inst.id - )).update_boxes(&*conn); + User::hash_pass(form.password.to_string()) + ).update_boxes(&*conn); Ok(Redirect::to(format!("/@/{}/", data.get().username))) } else { Err(String::from("Passwords don't match")) diff --git a/src/setup.rs b/src/setup.rs index 788929f1..43fa6f8d 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -193,15 +193,15 @@ fn create_admin(instance: Instance, conn: DbConn) { println!("What is your password?"); let password = rpassword::read_password().expect("Couldn't read your password."); - User::insert(&*conn, NewUser::new_local( + NewUser::new_local( + &*conn, name.clone(), name, true, format!("Admin of {}", instance.name), email, User::hash_pass(password), - instance.id - )).update_boxes(&*conn); + ).update_boxes(&*conn); println!("{}\n", " ✔️ Your account was succesfully created!".green()); }