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):
|
class Party(MongoModel):
|
||||||
name: str
|
name: str
|
||||||
created: datetime
|
created: datetime
|
||||||
allowed_extra: list[str]
|
allowed_extra: dict[str, int]
|
||||||
|
|
||||||
|
|
||||||
async def find_party(name: str) -> Party:
|
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):
|
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
|
# Guest methods
|
||||||
@ -188,7 +191,7 @@ async def list_parties(_=Depends(auth_admin)):
|
|||||||
|
|
||||||
class PartyCreate(BaseModel):
|
class PartyCreate(BaseModel):
|
||||||
name: str
|
name: str
|
||||||
allowed_extra: list[str] = []
|
allowed_extra: dict[str, int] = dict()
|
||||||
|
|
||||||
|
|
||||||
@app.post(
|
@app.post(
|
||||||
@ -269,7 +272,7 @@ async def create_new_guest(party: str, new_guest: GuestCreate, _=Depends(auth_ad
|
|||||||
|
|
||||||
@app.get(
|
@app.get(
|
||||||
"/{admin_token}/{party}/userAllowedExtra",
|
"/{admin_token}/{party}/userAllowedExtra",
|
||||||
response_model=list[str],
|
response_model=dict[str, int],
|
||||||
responses=error_responses(401, 404),
|
responses=error_responses(401, 404),
|
||||||
tags=["admin"],
|
tags=["admin"],
|
||||||
)
|
)
|
||||||
@ -284,7 +287,9 @@ async def get_allowed_extra_keys(party: str, _=Depends(auth_admin)):
|
|||||||
responses=error_responses(401, 404),
|
responses=error_responses(401, 404),
|
||||||
tags=["admin"],
|
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_obj = await find_party(party)
|
||||||
party_dict = party_obj.dict(exclude={"id"})
|
party_dict = party_obj.dict(exclude={"id"})
|
||||||
party_dict["allowed_extra"] = keys
|
party_dict["allowed_extra"] = keys
|
||||||
|
Loading…
Reference in New Issue
Block a user