From 9f508aedbe756fae9968aec614e96aa01684567e Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 31 Dec 2021 02:05:33 -0500 Subject: [PATCH] Category assignment flag check --- .../endpoints/categories/assign_tts_category.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/app/storyteller_web/src/http_server/endpoints/categories/assign_tts_category.rs b/crates/app/storyteller_web/src/http_server/endpoints/categories/assign_tts_category.rs index 368a2ebd40..b12df1575c 100644 --- a/crates/app/storyteller_web/src/http_server/endpoints/categories/assign_tts_category.rs +++ b/crates/app/storyteller_web/src/http_server/endpoints/categories/assign_tts_category.rs @@ -54,6 +54,7 @@ pub struct AssignTtsCategoryResponse { #[derive(Debug, Serialize)] pub enum AssignTtsCategoryError { CategoryNotFound, + CategoryNotApplicable, ModelNotFound, NotAuthorized, ServerError, @@ -63,6 +64,7 @@ impl ResponseError for AssignTtsCategoryError { fn status_code(&self) -> StatusCode { match *self { AssignTtsCategoryError::CategoryNotFound => StatusCode::NOT_FOUND, + AssignTtsCategoryError::CategoryNotApplicable => StatusCode::BAD_REQUEST, AssignTtsCategoryError::ModelNotFound => StatusCode::NOT_FOUND, AssignTtsCategoryError::NotAuthorized => StatusCode::UNAUTHORIZED, AssignTtsCategoryError::ServerError => StatusCode::INTERNAL_SERVER_ERROR, @@ -140,6 +142,11 @@ pub async fn assign_tts_category_handler( } } + if !category.can_directly_have_models { + warn!("category cannot have models: {}", category.category_token); + return Err(AssignTtsCategoryError::CategoryNotApplicable); + } + // NB: Second set of permission checks. // Only mods should see deleted models (both user_* and mod_* deleted). let is_mod_that_can_see_deleted = user_session.can_delete_other_users_tts_models;