cargo fmt, fix lint

This commit is contained in:
Greg Shuflin 2025-02-01 23:41:23 -08:00
parent e83fa37d58
commit b38c8c663c
2 changed files with 18 additions and 11 deletions

View File

@ -4,10 +4,10 @@ extern crate rocket;
mod user; mod user;
use rocket::fs::FileServer; use rocket::fs::FileServer;
use rocket::response::Redirect;
use rocket::serde::{json::Json, Serialize}; use rocket::serde::{json::Json, Serialize};
use rocket_db_pools::{sqlx, Database}; use rocket_db_pools::{sqlx, Database};
use rocket_dyn_templates::{context, Template}; use rocket_dyn_templates::{context, Template};
use rocket::response::Redirect;
use user::AuthenticatedUser; use user::AuthenticatedUser;
#[derive(Database)] #[derive(Database)]

View File

@ -1,9 +1,9 @@
use bcrypt;
use chrono; use chrono;
use rocket::http::{Cookie, CookieJar, Status}; use rocket::http::{Cookie, CookieJar, Status};
use rocket::serde::{json::Json, Deserialize, Serialize}; use rocket::serde::{json::Json, Deserialize, Serialize};
use rocket_db_pools::Connection; use rocket_db_pools::Connection;
use uuid::Uuid; use uuid::Uuid;
use bcrypt;
use crate::Db; use crate::Db;
@ -19,7 +19,12 @@ pub struct User {
} }
impl User { impl User {
pub fn new(username: String, password_hash: String, email: Option<String>, display_name: Option<String>) -> Self { pub fn new(
username: String,
password_hash: String,
email: Option<String>,
display_name: Option<String>,
) -> Self {
User { User {
id: Uuid::new_v4(), id: Uuid::new_v4(),
username, username,
@ -60,16 +65,16 @@ pub async fn create_user(
new_user: Json<NewUser>, new_user: Json<NewUser>,
) -> Result<Json<User>, Status> { ) -> Result<Json<User>, Status> {
let new_user = new_user.into_inner(); let new_user = new_user.into_inner();
// Hash the password - we'll use bcrypt // Hash the password - we'll use bcrypt
let password_hash = bcrypt::hash(new_user.password.as_bytes(), bcrypt::DEFAULT_COST) let password_hash = bcrypt::hash(new_user.password.as_bytes(), bcrypt::DEFAULT_COST)
.map_err(|_| Status::InternalServerError)?; .map_err(|_| Status::InternalServerError)?;
let user = User::new( let user = User::new(
new_user.username, new_user.username,
password_hash, password_hash,
new_user.email, new_user.email,
new_user.display_name new_user.display_name,
); );
let query = sqlx::query( let query = sqlx::query(
@ -169,7 +174,7 @@ pub async fn login(
cookies: &CookieJar<'_>, cookies: &CookieJar<'_>,
) -> Result<Json<LoginResponse>, Status> { ) -> Result<Json<LoginResponse>, Status> {
let creds = credentials.into_inner(); let creds = credentials.into_inner();
// Find user by username // Find user by username
let user = sqlx::query!( let user = sqlx::query!(
r#" r#"
@ -214,7 +219,7 @@ pub async fn login(
#[post("/logout")] #[post("/logout")]
pub fn logout(cookies: &CookieJar<'_>) -> Status { pub fn logout(cookies: &CookieJar<'_>) -> Status {
cookies.remove_private(Cookie::named("user_id")); cookies.remove_private(Cookie::build("user_id"));
Status::NoContent Status::NoContent
} }
@ -227,7 +232,9 @@ pub struct AuthenticatedUser {
impl<'r> rocket::request::FromRequest<'r> for AuthenticatedUser { impl<'r> rocket::request::FromRequest<'r> for AuthenticatedUser {
type Error = (); type Error = ();
async fn from_request(request: &'r rocket::Request<'_>) -> rocket::request::Outcome<Self, Self::Error> { async fn from_request(
request: &'r rocket::Request<'_>,
) -> rocket::request::Outcome<Self, Self::Error> {
match request.cookies().get_private("user_id") { match request.cookies().get_private("user_id") {
Some(cookie) => { Some(cookie) => {
if let Ok(user_id) = Uuid::parse_str(cookie.value()) { if let Ok(user_id) = Uuid::parse_str(cookie.value()) {
@ -235,8 +242,8 @@ impl<'r> rocket::request::FromRequest<'r> for AuthenticatedUser {
} else { } else {
rocket::request::Outcome::Forward(Status::Unauthorized) rocket::request::Outcome::Forward(Status::Unauthorized)
} }
}, }
None => rocket::request::Outcome::Forward(Status::Unauthorized), None => rocket::request::Outcome::Forward(Status::Unauthorized),
} }
} }
} }