diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..04733e7 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "samba-login" +version = "0.1.0" +edition = "2021" + +[dependencies] +rocket = "0.5.1" +rocket_dyn_templates = { version = "0.2.0", features = ["tera"] } +serde = { version = "1.0.215", features = ["derive"] } diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..fd36fae --- /dev/null +++ b/src/main.rs @@ -0,0 +1,41 @@ +#[macro_use] extern crate rocket; + +use rocket::form::Form; +use rocket::form::FromForm; +use rocket_dyn_templates::{Template, context}; + +#[derive(FromForm)] +struct LoginData { + username: String, + password: String, +} + +#[post("/login", data = "")] +fn login(login_data: Form) -> Template { + let correct_username = "user"; + let correct_password = "password"; + + let message = if login_data.username == correct_username && login_data.password == correct_password { + // On successful login, you can perform actions here like creating directories. + println!("Login successful: performing server-side actions."); + + "Login successful! Directories have been created." + } else { + "Invalid username or password." + }; + + Template::render("result", context! { message }) +} + +#[get("/")] +fn index() -> Template { + Template::render("index", context! {}) +} + +#[launch] +fn rocket() -> _ { + rocket::build() + .mount("/", routes![index, login]) + .attach(Template::fairing()) +} + diff --git a/templates/index.html.tera b/templates/index.html.tera new file mode 100644 index 0000000..4b549ee --- /dev/null +++ b/templates/index.html.tera @@ -0,0 +1,20 @@ + + + + + Login + + +

Login

+
+ + +
+ + +
+ +
+ + + diff --git a/templates/result.html.tera b/templates/result.html.tera new file mode 100644 index 0000000..3da3e7c --- /dev/null +++ b/templates/result.html.tera @@ -0,0 +1,10 @@ + + + + + Login Result + + +

{{ message }}

+ +