mirror of https://gitlab.com/litecord/litecord.git
guild.members: validate nickname on update_nickname
- schemas: add nickname type
This commit is contained in:
parent
2adc88e9e4
commit
1747d0c346
|
|
@ -170,13 +170,17 @@ async def update_nickname(guild_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
await guild_check(user_id, guild_id)
|
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("""
|
await app.db.execute("""
|
||||||
UPDATE members
|
UPDATE members
|
||||||
SET nickname = $1
|
SET nickname = $1
|
||||||
WHERE user_id = $2 AND guild_id = $3
|
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 = await app.storage.get_member_data_one(guild_id, user_id)
|
||||||
member.pop('joined_at')
|
member.pop('joined_at')
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,9 @@ class LitecordValidator(Validator):
|
||||||
def _validate_type_theme(self, value: str) -> bool:
|
def _validate_type_theme(self, value: str) -> bool:
|
||||||
return value in ['light', 'dark']
|
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,
|
def validate(reqjson: Union[Dict, List], schema: Dict,
|
||||||
raise_err: bool = True) -> Union[Dict, List]:
|
raise_err: bool = True) -> Union[Dict, List]:
|
||||||
|
|
@ -350,10 +353,7 @@ ROLE_UPDATE_POSITION = {
|
||||||
|
|
||||||
MEMBER_UPDATE = {
|
MEMBER_UPDATE = {
|
||||||
'nick': {
|
'nick': {
|
||||||
'type': 'username',
|
'type': 'nickname', 'required': False},
|
||||||
'minlength': 1, 'maxlength': 100,
|
|
||||||
'required': False,
|
|
||||||
},
|
|
||||||
'roles': {'type': 'list', 'required': False,
|
'roles': {'type': 'list', 'required': False,
|
||||||
'schema': {'coerce': int}},
|
'schema': {'coerce': int}},
|
||||||
'mute': {'type': 'boolean', 'required': False},
|
'mute': {'type': 'boolean', 'required': False},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue