diff options
Diffstat (limited to 'src/controllers/login_controller.rs')
-rw-r--r-- | src/controllers/login_controller.rs | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/controllers/login_controller.rs b/src/controllers/login_controller.rs index 564deff..090d299 100644 --- a/src/controllers/login_controller.rs +++ b/src/controllers/login_controller.rs @@ -1,8 +1,13 @@ -use rocket; -use rocket::request::Form; -use rocket::response::{Flash, Redirect}; -use models; -use utils; +use rocket::{ + request::{FlashMessage, Form}, + response::{Flash, Redirect}, + Route +}; +use models::User; +use utils::{ + DbConn, + Page +}; #[derive(BartDisplay)] #[template = "templates/login.html"] @@ -11,8 +16,8 @@ pub struct LoginTemplate; implement_responder_for!(LoginTemplate); #[get("/", format="text/html")] -pub fn new(flash: Option<rocket::request::FlashMessage>) -> utils::Page<LoginTemplate> { - utils::Page { +pub fn new(flash: Option<FlashMessage>) -> Page<LoginTemplate> { + Page { title: String::from("Log in"), flash: flash, content: LoginTemplate{} @@ -26,9 +31,9 @@ pub struct LoginForm { } #[post("/create", data="<login>")] -pub fn create(login: Form<LoginForm>, conn: utils::DbConn) -> Flash<Redirect> { +pub fn create(login: Form<LoginForm>, conn: DbConn) -> Flash<Redirect> { let login = login.get(); - if let Ok(user) = models::User::by_email(&login.email, conn) { + if let Ok(user) = User::by_email(&login.email, conn) { if user.password == login.password { return Flash::success(Redirect::to("/"), format!("{} logged in successfully", user.realname.or(Some(user.username)).unwrap())); } @@ -37,6 +42,6 @@ pub fn create(login: Form<LoginForm>, conn: utils::DbConn) -> Flash<Redirect> { Flash::error(Redirect::to("/login"), "Invalid email or passoword!") } -pub fn routes() -> Vec<rocket::Route> { +pub fn routes() -> Vec<Route> { routes![new, create] } |