Make allowed extra length configurable
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
0512449140
commit
3bb77d29a5
@ -77,7 +77,7 @@ async def find_guest(party: str, token: str) -> DBGuest:
|
||||
class Party(MongoModel):
|
||||
name: str
|
||||
created: datetime
|
||||
allowed_extra: list[str]
|
||||
allowed_extra: dict[str, int]
|
||||
|
||||
|
||||
async def find_party(name: str) -> Party:
|
||||
@ -88,7 +88,10 @@ async def find_party(name: str) -> Party:
|
||||
|
||||
|
||||
def validate_extra(extra: dict[str, str], party: Party):
|
||||
return all(k in party.allowed_extra and len(v) <= 64 for (k, v) in extra.items())
|
||||
return all(
|
||||
k in party.allowed_extra and len(v) <= party.allowed_extra[k]
|
||||
for (k, v) in extra.items()
|
||||
)
|
||||
|
||||
|
||||
# Guest methods
|
||||
@ -188,7 +191,7 @@ async def list_parties(_=Depends(auth_admin)):
|
||||
|
||||
class PartyCreate(BaseModel):
|
||||
name: str
|
||||
allowed_extra: list[str] = []
|
||||
allowed_extra: dict[str, int] = dict()
|
||||
|
||||
|
||||
@app.post(
|
||||
@ -269,7 +272,7 @@ async def create_new_guest(party: str, new_guest: GuestCreate, _=Depends(auth_ad
|
||||
|
||||
@app.get(
|
||||
"/{admin_token}/{party}/userAllowedExtra",
|
||||
response_model=list[str],
|
||||
response_model=dict[str, int],
|
||||
responses=error_responses(401, 404),
|
||||
tags=["admin"],
|
||||
)
|
||||
@ -284,7 +287,9 @@ async def get_allowed_extra_keys(party: str, _=Depends(auth_admin)):
|
||||
responses=error_responses(401, 404),
|
||||
tags=["admin"],
|
||||
)
|
||||
async def modify_allowed_extra_keys(party: str, keys: list[str], _=Depends(auth_admin)):
|
||||
async def modify_allowed_extra_keys(
|
||||
party: str, keys: dict[str, int], _=Depends(auth_admin)
|
||||
):
|
||||
party_obj = await find_party(party)
|
||||
party_dict = party_obj.dict(exclude={"id"})
|
||||
party_dict["allowed_extra"] = keys
|
||||
|
Loading…
Reference in New Issue
Block a user