Don't allow empty strings in credential creation api (#1934)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from datetime import datetime
|
||||
from enum import StrEnum
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
|
||||
class CredentialType(StrEnum):
|
||||
@@ -24,6 +24,11 @@ class PasswordCredential(BaseModel):
|
||||
totp: str | None = None
|
||||
|
||||
|
||||
class NonEmptyPasswordCredential(PasswordCredential):
|
||||
password: str = Field(..., min_length=1)
|
||||
username: str = Field(..., min_length=1)
|
||||
|
||||
|
||||
class CreditCardCredential(BaseModel):
|
||||
card_number: str
|
||||
card_cvv: str
|
||||
@@ -33,6 +38,15 @@ class CreditCardCredential(BaseModel):
|
||||
card_holder_name: str
|
||||
|
||||
|
||||
class NonEmptyCreditCardCredential(CreditCardCredential):
|
||||
card_number: str = Field(..., min_length=1)
|
||||
card_cvv: str = Field(..., min_length=1)
|
||||
card_exp_month: str = Field(..., min_length=1)
|
||||
card_exp_year: str = Field(..., min_length=1)
|
||||
card_brand: str = Field(..., min_length=1)
|
||||
card_holder_name: str = Field(..., min_length=1)
|
||||
|
||||
|
||||
class CredentialItem(BaseModel):
|
||||
item_id: str
|
||||
name: str
|
||||
@@ -43,7 +57,7 @@ class CredentialItem(BaseModel):
|
||||
class CreateCredentialRequest(BaseModel):
|
||||
name: str
|
||||
credential_type: CredentialType
|
||||
credential: PasswordCredential | CreditCardCredential
|
||||
credential: NonEmptyPasswordCredential | NonEmptyCreditCardCredential
|
||||
|
||||
|
||||
class CredentialResponse(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user