From 5bafb0503fe5b98fea2a0ce62f2d2eed0ead930b Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 3 Sep 2021 05:09:33 -0400 Subject: [PATCH] disallow editing profile for banned users --- src/http_server/endpoints/users/edit_profile.rs | 5 +++++ src/http_server/endpoints/w2l/enqueue_infer_w2l.rs | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/http_server/endpoints/users/edit_profile.rs b/src/http_server/endpoints/users/edit_profile.rs index b5a3b9f5a7..1b69c5e187 100644 --- a/src/http_server/endpoints/users/edit_profile.rs +++ b/src/http_server/endpoints/users/edit_profile.rs @@ -116,6 +116,11 @@ pub async fn edit_profile_handler( } }; + if user_session.is_banned { + // Banned users can't edit anything + return Err(EditProfileError::NotAuthorized); + } + let user_lookup_result = get_user_profile_by_username(&path.username, &server_state.mysql_pool) .await; diff --git a/src/http_server/endpoints/w2l/enqueue_infer_w2l.rs b/src/http_server/endpoints/w2l/enqueue_infer_w2l.rs index f802142697..a14a680815 100644 --- a/src/http_server/endpoints/w2l/enqueue_infer_w2l.rs +++ b/src/http_server/endpoints/w2l/enqueue_infer_w2l.rs @@ -39,6 +39,7 @@ pub struct InferW2lSuccessResponse { #[derive(Debug, Display)] pub enum InferW2lError { BadInput(String), + NotAuthorized, ServerError, } @@ -47,6 +48,7 @@ impl ResponseError for InferW2lError { match *self { InferW2lError::BadInput(_) => StatusCode::BAD_REQUEST, InferW2lError::ServerError => StatusCode::INTERNAL_SERVER_ERROR, + InferW2lError::NotAuthorized => StatusCode::UNAUTHORIZED, } } @@ -54,6 +56,7 @@ impl ResponseError for InferW2lError { let error_reason = match self { InferW2lError::BadInput(reason) => reason.to_string(), InferW2lError::ServerError => "server error".to_string(), + InferW2lError::NotAuthorized => "not authorized".to_string(), }; to_simple_json_error(&error_reason, self.status_code())