feat: Enhance user permissions and update event handling with improved response structures

This commit is contained in:
MythEclipse
2025-08-15 00:32:15 +07:00
parent 01e20baa45
commit 8402415649
11 changed files with 147 additions and 43 deletions
+13 -1
View File
@@ -6,6 +6,9 @@ use imphnen_libs::{AppState, jsonwebtoken::decode_access_token};
use imphnen_utils::common_response;
use axum_extra::headers::{authorization::Bearer, Authorization, HeaderMapExt};
use std::convert::Infallible;
use imphnen_iam::v1::users::{users_service::{UsersService, UsersServiceTrait}};
use imphnen_libs::ResourceEnum;
use imphnen_utils::make_thing;
pub async fn auth_middleware(
Extension(_state): Extension<AppState>, // state is currently unused in this middleware
@@ -32,6 +35,15 @@ pub async fn auth_middleware(
)),
};
req.extensions_mut().insert(claims);
let user_id = claims.user_id.clone();
let repo = UsersService {};
let thing_id = make_thing(&ResourceEnum::Users.to_string(), &user_id);
let user_data = match repo.get_user_by_id_internal(&thing_id, &_state).await {
Ok(user) => user,
Err(_) => return Ok(common_response(StatusCode::UNAUTHORIZED, "User not found")),
};
req.extensions_mut().insert(user_data);
Ok(next.run(req).await)
}