diff options
Diffstat (limited to 'src/server.rs')
-rw-r--r-- | src/server.rs | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/server.rs b/src/server.rs index 40e6b87..275ffed 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,8 +1,8 @@ -use rocket::http::Cookies; -use rocket::http::Cookie; use rocket::config::Config; use rocket::config::Environment; use rocket::config::Value; +use rocket::http::Cookie; +use rocket::http::Cookies; use rocket::http::Status; use rocket::request; use rocket::request::Form; @@ -33,21 +33,19 @@ pub struct LoggedInUser { impl<'a, 'r> FromRequest<'a, 'r> for LoggedInUser { type Error = Error; - fn from_request(request: &'a Request<'r>) - -> request::Outcome<Self, Self::Error> { - let conn = request.guard::<Db>() + fn from_request(request: &'a Request<'r>) -> request::Outcome<Self, Self::Error> { + let conn = request + .guard::<Db>() .map_failure(|(s, ())| (s, Error::InternalError))?; let user = (|| { - let username = request.cookies() + let username = request + .cookies() .get_private("user") .map(|cookie| cookie.value().to_string()) .ok_or(Error::NotFound)?; - if db::user_exists(&conn, &username)? { - Ok(LoggedInUser{username: username}) - } else { - Err(Error::NotFound) - } + db::get_user(&conn, &username)?; + Ok(LoggedInUser { username: username }) })(); use request::Outcome; @@ -92,7 +90,7 @@ fn login_submit(conn: Db, data: Form<LoginData>, mut cookies: Cookies) -> Result Ok(_user) => { cookies.add_private(Cookie::new("user", data.username.clone())); Ok(Redirect::to(uri!(index).to_string())) - }, + } Err(Error::NotFound) => Ok(Redirect::to(uri!(login: failed = true).to_string())), Err(e) => Err(e), } |