From 23269071419b8d602a750bfcde8b136cc241f1b2 Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Wed, 28 Aug 2024 22:31:04 +0200 Subject: [PATCH] limit username length --- src/ez_lan_manager/components/UserInfoAndLoginBox.py | 2 +- src/ez_lan_manager/pages/RegisterPage.py | 8 +++++++- src/ez_lan_manager/services/UserService.py | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ez_lan_manager/components/UserInfoAndLoginBox.py b/src/ez_lan_manager/components/UserInfoAndLoginBox.py index c3bfccd..813f49f 100644 --- a/src/ez_lan_manager/components/UserInfoAndLoginBox.py +++ b/src/ez_lan_manager/components/UserInfoAndLoginBox.py @@ -41,7 +41,7 @@ class UserInfoAndLoginBox(Component): @staticmethod def get_greeting() -> str: - return choice(["Guten Tacho", "Tuten Gag", "Hallöchen mit Öchen", "Servus", "Moinjour", "Hallöchen Popöchen", "Heyho", "Moinsen"]) + return choice(["Guten Tacho", "Tuten Gag", "Servus", "Moinjour", "Hallöchen Popöchen", "Heyho", "Moinsen"]) # @FixMe: If the user logs out and then tries to log back in, it does not work # If the user navigates to another page and then tries again. It works. diff --git a/src/ez_lan_manager/pages/RegisterPage.py b/src/ez_lan_manager/pages/RegisterPage.py index 62ccab8..d03e459 100644 --- a/src/ez_lan_manager/pages/RegisterPage.py +++ b/src/ez_lan_manager/pages/RegisterPage.py @@ -29,6 +29,11 @@ class RegisterPage(Component): except EmailNotValidError: self.email_input.is_valid = False + def on_user_name_input_change(self, _: TextInputChangeEvent) -> None: + current_text = self.user_name_input.text + if len(current_text) > UserService.MAX_USERNAME_LENGTH: + self.user_name_input.text = current_text[:UserService.MAX_USERNAME_LENGTH] + async def on_submit_button_pressed(self) -> None: self.submit_button.is_loading = True await self.submit_button.force_refresh() @@ -95,7 +100,8 @@ class RegisterPage(Component): margin_left=1, margin_right=1, margin_bottom=1, - grow_x=True + grow_x=True, + on_change=self.on_user_name_input_change ) self.email_input = TextInput( label="E-Mail Adresse", diff --git a/src/ez_lan_manager/services/UserService.py b/src/ez_lan_manager/services/UserService.py index aa00be4..d24f213 100644 --- a/src/ez_lan_manager/services/UserService.py +++ b/src/ez_lan_manager/services/UserService.py @@ -12,6 +12,7 @@ class NameNotAllowedError(Exception): class UserService: ALLOWED_USER_NAME_SYMBOLS = ascii_letters + digits + "!#$%&*+,-./:;<=>?[]^_{|}~" + MAX_USERNAME_LENGTH = 14 def __init__(self, db_service: DatabaseService) -> None: self._db_service = db_service