Category assignment flag check

This commit is contained in:
Brandon Thomas committed 2021-12-31 02:05:33 -05:00
1 parent db7f5d20fe
commit 9f508aedbe
1 file changed
+7
@@ -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;