раскидал структуру для монорепозитория
This commit is contained in:
23
backend/src/middleware.rs
Normal file
23
backend/src/middleware.rs
Normal file
@@ -0,0 +1,23 @@
|
||||
use axum::{
|
||||
extract::Request,
|
||||
http::StatusCode,
|
||||
middleware::Next,
|
||||
response::Response,
|
||||
};
|
||||
use axum_login::AuthSession;
|
||||
|
||||
use crate::auth::AuthBackend;
|
||||
|
||||
pub async fn require_admin(
|
||||
auth_session: AuthSession<AuthBackend>,
|
||||
request: Request,
|
||||
next: Next,
|
||||
) -> Result<Response, StatusCode> {
|
||||
let user = auth_session.user.ok_or(StatusCode::UNAUTHORIZED)?;
|
||||
|
||||
if !user.is_admin {
|
||||
return Err(StatusCode::FORBIDDEN);
|
||||
}
|
||||
|
||||
Ok(next.run(request).await)
|
||||
}
|
||||
Reference in New Issue
Block a user