From 4c0f98f078c9d2a3e974dff50e402063ed43da60 Mon Sep 17 00:00:00 2001 From: Anders Soh <57172077+hakkasuru@users.noreply.github.com> Date: Mon, 1 Aug 2022 04:20:14 +0800 Subject: [PATCH] validate value type is string before using strip (#2155) * Fix issue where required custom fields could not be submitted for existing users Co-authored-by: Kevin Chung --- CTFd/schemas/teams.py | 11 +++++++---- CTFd/schemas/users.py | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/CTFd/schemas/teams.py b/CTFd/schemas/teams.py index 2f8aab0e..208369c7 100644 --- a/CTFd/schemas/teams.py +++ b/CTFd/schemas/teams.py @@ -264,10 +264,13 @@ class TeamSchema(ma.ModelSchema): field_id=field.id, team_id=current_team.id ).first() - if field.required is True and value.strip() == "": - raise ValidationError( - f"Field '{field.name}' is required", field_names=["fields"] - ) + if field.required is True: + if isinstance(value, str): + if value.strip() == "": + raise ValidationError( + f"Field '{field.name}' is required", + field_names=["fields"], + ) if field.editable is False and entry is not None: raise ValidationError( diff --git a/CTFd/schemas/users.py b/CTFd/schemas/users.py index 04c33799..3ea21db2 100644 --- a/CTFd/schemas/users.py +++ b/CTFd/schemas/users.py @@ -250,10 +250,13 @@ class UserSchema(ma.ModelSchema): field_id=field.id, user_id=current_user.id ).first() - if field.required is True and value.strip() == "": - raise ValidationError( - f"Field '{field.name}' is required", field_names=["fields"] - ) + if field.required is True: + if isinstance(value, str): + if value.strip() == "": + raise ValidationError( + f"Field '{field.name}' is required", + field_names=["fields"], + ) if field.editable is False and entry is not None: raise ValidationError(