Skip to content

Fix/nickname preserve#194

Open
AJ-Collins wants to merge 5 commits intokaw393939:mainfrom
AJ-Collins:fix/nickname-preserve
Open

Fix/nickname preserve#194
AJ-Collins wants to merge 5 commits intokaw393939:mainfrom
AJ-Collins:fix/nickname-preserve

Conversation

@AJ-Collins
Copy link

Summary

This pull request fixes a bug where user-provided nickname values were being overridden by system-generated nicknames during registration.

What was happening

The current logic in User.create() assigns a new nickname using generate_nickname() regardless of whether the user supplied one or not.

As a result, even when a user provides a valid nickname in the registration payload, it gets replaced by a generated one (e.g., clever_fox_375), which is unexpected behavior.

Fixes

  • Updated the logic to:
    • Check if the user provided a nickname.
    • Validate uniqueness if provided.
    • Generate one only if not supplied.
  • Logs an error and aborts if a duplicate nickname is found.

Code changes

# Old logic (replaced)
new_nickname = generate_nickname()
while await cls.get_by_nickname(session, new_nickname):
    new_nickname = generate_nickname()
new_user.nickname = new_nickname

# New logic
nickname = validated_data.get('nickname')
if not nickname:
    nickname = generate_nickname()
    while await cls.get_by_nickname(session, nickname):
        nickname = generate_nickname()
else:
    if await cls.get_by_nickname(session, nickname):
        logger.error("Nickname already exists.")
        return None

new_user.nickname = nickname

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments