guild.members: validate nickname on update_nickname

- schemas: add nickname type
This commit is contained in:
Luna Mendes 2018-11-22 21:05:29 -03:00
parent 2adc88e9e4
commit 1747d0c346
2 changed files with 10 additions and 6 deletions

View File

@ -170,13 +170,17 @@ async def update_nickname(guild_id):
user_id = await token_check()
await guild_check(user_id, guild_id)
j = await request.get_json()
j = validate(await request.get_json(), {
'nick': {'type': 'nickname'}
})
nick = j['nick'] or None
await app.db.execute("""
UPDATE members
SET nickname = $1
WHERE user_id = $2 AND guild_id = $3
""", j['nick'], user_id, guild_id)
""", nick, user_id, guild_id)
member = await app.storage.get_member_data_one(guild_id, user_id)
member.pop('joined_at')

View File

@ -127,6 +127,9 @@ class LitecordValidator(Validator):
def _validate_type_theme(self, value: str) -> bool:
return value in ['light', 'dark']
def _validate_type_nickname(self, value: str) -> bool:
return isinstance(value, str) and len(value) in range(1, 32)
def validate(reqjson: Union[Dict, List], schema: Dict,
raise_err: bool = True) -> Union[Dict, List]:
@ -350,10 +353,7 @@ ROLE_UPDATE_POSITION = {
MEMBER_UPDATE = {
'nick': {
'type': 'username',
'minlength': 1, 'maxlength': 100,
'required': False,
},
'type': 'nickname', 'required': False},
'roles': {'type': 'list', 'required': False,
'schema': {'coerce': int}},
'mute': {'type': 'boolean', 'required': False},