diff --git a/crates/ezidam/src/routes.rs b/crates/ezidam/src/routes.rs index 9bd5d9d..a64b2e9 100644 --- a/crates/ezidam/src/routes.rs +++ b/crates/ezidam/src/routes.rs @@ -33,7 +33,9 @@ pub fn routes(rocket_builder: Rocket) -> Rocket { // Root .mount("/", root::routes()) // Setup - .mount("/setup", setup::routes()) - .mount("/auth", auth::routes()) - .mount("/.well-known", well_known::routes()) + .mount("/", setup::routes()) + // Oauth + .mount("/", oauth::routes()) + // Well known + .mount("/", well_known::routes()) } diff --git a/crates/ezidam/src/routes/root.rs b/crates/ezidam/src/routes/root.rs index f45100d..645aa57 100644 --- a/crates/ezidam/src/routes/root.rs +++ b/crates/ezidam/src/routes/root.rs @@ -82,7 +82,7 @@ pub mod content { #[get("/")] async fn redirect_to_setup(_setup: NeedSetup) -> Redirect { - Redirect::to(uri!("/setup")) + Redirect::to(uri!(super::setup::setup)) } #[get("/", rank = 2)] diff --git a/crates/ezidam/src/routes/setup.rs b/crates/ezidam/src/routes/setup.rs index 4989297..ef06303 100644 --- a/crates/ezidam/src/routes/setup.rs +++ b/crates/ezidam/src/routes/setup.rs @@ -8,12 +8,12 @@ pub fn routes() -> Vec { routes![setup_completed, setup, create_first_account] } -#[get("/")] +#[get("/setup")] async fn setup_completed(_setup: CompletedSetup) -> Redirect { - Redirect::to(uri!("/")) + Redirect::to(uri!(super::root::homepage)) } -#[get("/", rank = 2)] +#[get("/setup", rank = 2)] async fn setup(flash: Option>) -> Template { flash .map(|flash| Page::with_flash(Page::Setup, flash)) @@ -27,7 +27,7 @@ struct CreateFirstAccount<'r> { pub url: &'r str, } -#[post("/", data = "
")] +#[post("/setup", data = "")] async fn create_first_account( form: Form>, _setup: NeedSetup, @@ -40,7 +40,7 @@ async fn create_first_account( Ok(url) => url, Err(e) => { return Ok(Either::Right(Flash::new( - Redirect::to(uri!("/setup")), + Redirect::to(uri!(setup)), FlashKind::Danger, e.to_string(), ))); @@ -76,7 +76,7 @@ async fn create_first_account( // TODO: login with openid/oauth - Ok(Either::Left(Redirect::to(uri!("/")))) + Ok(Either::Left(Redirect::to(uri!(super::root::homepage)))) } #[cfg(test)] @@ -89,7 +89,7 @@ mod test { let client = setup_rocket_testing(); // Make request - let setup_page = client.get(uri!("/setup")).dispatch(); + let setup_page = client.get(uri!(super::setup)).dispatch(); assert_eq!(setup_page.status(), Status::Ok); // Create account @@ -97,7 +97,7 @@ mod test { assert_eq!(create_account.status(), Status::SeeOther); // Make request again, make sure its not OK - let setup_page_after_creation = client.get(uri!("/setup")).dispatch(); + let setup_page_after_creation = client.get(uri!(super::setup)).dispatch(); assert_ne!(setup_page_after_creation.status(), Status::Ok); } } diff --git a/crates/ezidam/src/routes/well_known.rs b/crates/ezidam/src/routes/well_known.rs index 7cb17f7..d0e675d 100644 --- a/crates/ezidam/src/routes/well_known.rs +++ b/crates/ezidam/src/routes/well_known.rs @@ -10,7 +10,7 @@ pub fn routes() -> Vec { routes![openid_configuration, json_web_keys] } -#[get("/openid-configuration")] +#[get("/.well-known/openid-configuration")] async fn openid_configuration(mut db: Connection) -> Result> { // Get settings let settings = Settings::get(&mut *db).await?; @@ -27,7 +27,7 @@ async fn openid_configuration(mut db: Connection) -> Result) -> Result>> { // Get keys let keys = Key::get_all(&mut *db, Some(false)).await?; @@ -70,9 +70,7 @@ mod test { run_setup(&client); // Make request - let response = client - .get(uri!("/.well-known/openid-configuration")) - .dispatch(); + let response = client.get(uri!(super::openid_configuration)).dispatch(); assert_eq!(response.status(), Status::Ok); // Make sure it is valid json @@ -85,9 +83,7 @@ mod test { let client = setup_rocket_testing(); // Make request - let response = client - .get(uri!("/.well-known/openid-configuration")) - .dispatch(); + let response = client.get(uri!(super::openid_configuration)).dispatch(); assert_ne!(response.status(), Status::Ok); } @@ -97,7 +93,7 @@ mod test { let client = setup_rocket_testing(); // Make request - let response = client.get(uri!("/.well-known/jwks.json")).dispatch(); + let response = client.get(uri!(super::json_web_keys)).dispatch(); assert_eq!(response.status(), Status::Ok); // Make sure it is valid json diff --git a/crates/ezidam/src/tests.rs b/crates/ezidam/src/tests.rs index af49a6e..3698d79 100644 --- a/crates/ezidam/src/tests.rs +++ b/crates/ezidam/src/tests.rs @@ -29,7 +29,7 @@ pub fn setup_rocket_testing() -> Client { pub fn run_setup(client: &Client) -> LocalResponse { client - .post(uri!("/setup")) + .post(uri!(crate::routes::setup::setup)) .header(ContentType::Form) .body(r#"username=phil&password=password&url=https://example.com"#) .dispatch()