diff --git a/api/src/controller/feedback.rs b/api/src/controller/feedback.rs index 223c003..e3bfc86 100644 --- a/api/src/controller/feedback.rs +++ b/api/src/controller/feedback.rs @@ -20,7 +20,8 @@ pub async fn add_feedback( /// 获取反馈信息列表 pub async fn get_feedback_list_by_page( + Extension(context): Extension, Query(page_params): Query ) -> ResResult>> { - service::feedback::get_feedback_list_by_page(page_params.page.unwrap(), page_params.page_size.unwrap()).await + service::feedback::get_feedback_list_by_page(context, page_params.page.unwrap(), page_params.page_size.unwrap()).await } \ No newline at end of file diff --git a/api/src/router.rs b/api/src/router.rs index f202f73..2af7486 100644 --- a/api/src/router.rs +++ b/api/src/router.rs @@ -26,9 +26,9 @@ pub(crate) fn init() -> Router { post(controller::feedback::add_feedback) .get(controller::feedback::get_feedback_list_by_page), ) - /* .layer(axum::middleware::from_fn( + .layer(axum::middleware::from_fn( library::middleware::req_ctx::authenticate_ctx, - )) */; + )); Router::new() .nest("/", open) diff --git a/library/src/middleware/req_ctx.rs b/library/src/middleware/req_ctx.rs index f282db6..214222d 100644 --- a/library/src/middleware/req_ctx.rs +++ b/library/src/middleware/req_ctx.rs @@ -5,9 +5,6 @@ use jsonwebtoken::{decode, DecodingKey, Validation}; use crate::{cache::account_cache::LOGIN_CACHE, config, context::Context, token::Claims}; const WHITE_LIST: &[(&str, &str)] = &[ - ("GET", "/api/v1/users/:id"), - ("POST", "/api/v1/orders"), - ("GET", "/feedback"), ("POST", "/account/sys"), ]; @@ -15,6 +12,7 @@ pub async fn authenticate_ctx(mut req: Request, next: Next) -> Response { // 获取请求的url和method,然后判断是否在白名单中,如果在白名单中,则直接返回next(req),否则继续执行下面的代码 let method = req.method().clone().to_string(); let uri = req.uri().path_and_query().unwrap().to_string(); + tracing::info!("method: {}, uri: {}", method, uri); if WHITE_LIST.into_iter().find(|item| { return item.0 == method && item.1 == uri; }).is_some() { diff --git a/service/src/feedback.rs b/service/src/feedback.rs index 6901913..1f1d66d 100644 --- a/service/src/feedback.rs +++ b/service/src/feedback.rs @@ -6,7 +6,15 @@ use library::res::pageable::Pageable; use library::res::response::{ResData, ResResult}; /// 获取反馈信息列表 -pub async fn get_feedback_list_by_page(page: i64, page_size: i64) -> ResResult>> { +pub async fn get_feedback_list_by_page( + context: Context, + page: i64, + page_size: i64 +) -> ResResult>> { + if !context.account.role.is_admin() { + tracing::error!("非管理员用户,无法获取反馈信息列表"); + return Ok(ResData::some(Pageable::::empty())); + } let feedback_list = Feedback::search_feedback(page, page_size, db!()).await.ok(); if feedback_list.is_none() { tracing::error!("反馈信息为空");