From 38f4ef0073c43e478e14c3dd0cc28943b360f013 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 23 Dec 2022 07:37:08 -0500 Subject: Use new type safe state handling from axum 0.6 --- server/src/auth.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'server/src/auth.rs') diff --git a/server/src/auth.rs b/server/src/auth.rs index d0f6c38..a924f44 100644 --- a/server/src/auth.rs +++ b/server/src/auth.rs @@ -6,10 +6,10 @@ use std::{ sync::{Arc, Mutex}, }; -use crate::{error::BridgeError, server::ContextExtension}; +use crate::{error::BridgeError, server::{ServerState, ServerContext}}; use async_trait::async_trait; use axum::{ - extract::{FromRequest, FromRequestParts}, + extract::{FromRequestParts, State, FromRef}, response::{IntoResponse, Response}, http::request::Parts, }; use chrono::{DateTime, Utc}; @@ -368,21 +368,20 @@ pub async fn fetch_authenticated_session( } #[async_trait] -impl FromRequestParts for AuthenticatedSession +impl FromRequestParts for AuthenticatedSession where - B: Send + Sync, + S: Send + Sync, + Arc: FromRef { type Rejection = Response; async fn from_request_parts( - parts: &mut Parts, state: &B + parts: &mut Parts, state: &S ) -> Result { let cookies = Cookies::from_request_parts(parts, state) .await .map_err(|e| e.into_response())?; - let extension = ContextExtension::from_request_parts(parts, state) - .await - .map_err(|e| e.into_response())?; + let state = Arc::::from_ref(state); let cookie = match cookies.get("user-id") { None => return Err(BridgeError::NotLoggedIn.into_response()), Some(v) => v, @@ -396,7 +395,7 @@ where } Ok(s) => s, }; - let session = match crate::auth::fetch_authenticated_session(&extension.db, &session_id) + let session = match crate::auth::fetch_authenticated_session(&state.db, &session_id) .await .map_err(|e| e.into_response())? { -- cgit v1.2.3