1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-07-24 07:39:41 +02:00

fix: Prevent Bad Cookbook Names (#4364)

This commit is contained in:
Michael Genson 2024-10-15 12:54:58 -05:00 committed by GitHub
parent 1af2473a72
commit 6d89fe37ad
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 29 additions and 0 deletions

View file

@ -1,6 +1,7 @@
from typing import Annotated
from pydantic import UUID4, ConfigDict, Field, field_validator
from slugify import slugify
from sqlalchemy.orm import joinedload
from sqlalchemy.orm.interfaces import LoaderOption
@ -29,6 +30,18 @@ class CreateCookBook(MealieModel):
def validate_public(public: bool | None) -> bool:
return False if public is None else public
@field_validator("name")
def validate_name(name: str) -> str:
name = name.strip()
# we calculate the slug later leveraging the database,
# but we still need to validate the name can be slugified
possible_slug = slugify(name)
if not (name and possible_slug):
raise ValueError("Name cannot be empty")
return name
class SaveCookBook(CreateCookBook):
group_id: UUID4