diff --git a/iridium_installer/ui/pages/user.py b/iridium_installer/ui/pages/user.py index 3eec538..101a6c6 100644 --- a/iridium_installer/ui/pages/user.py +++ b/iridium_installer/ui/pages/user.py @@ -29,10 +29,16 @@ class UserPage(Adw.Bin): self.fullname_row = Adw.EntryRow() self.fullname_row.set_title("Full Name") + self.fullname_row.set_text("Administrator") + self.fullname_row.connect("notify::text", self.on_fullname_changed) group.add(self.fullname_row) self.username_row = Adw.EntryRow() self.username_row.set_title("Username") + self.username_row.set_text("admin") + self.username_handler_id = self.username_row.connect( + "notify::text", self.on_username_changed + ) group.add(self.username_row) self.password_row = Adw.PasswordEntryRow() @@ -50,16 +56,66 @@ class UserPage(Adw.Bin): self.hostname_row = Adw.EntryRow() self.hostname_row.set_title("Hostname") - self.hostname_row.set_text("iridium-pc") + self.hostname_row.set_text("iridium") host_group.add(self.hostname_row) - # Administrator - admin_group = Adw.PreferencesGroup() - admin_group.set_margin_top(12) - box.append(admin_group) + self.username_manually_set = False - admin_row = Adw.SwitchRow() - admin_row.set_title("Make this user administrator") - admin_row.set_subtitle("Add to sudoers group") - admin_row.set_active(True) - admin_group.add(admin_row) + def on_fullname_changed(self, entry, _pspec): + if self.username_manually_set: + return + + username = entry.get_text().lower() + if username == "administrator": + username = "admin" + for sign in ( + " ", + "-", + "_", + ".", + ",", + ":", + ";", + "!", + "?", + "/", + "\\", + "|", + "@", + "#", + "$", + "%", + "^", + "&", + "*", + "(", + ")", + "[", + "]", + "{", + "}", + "'", + '"', + "`", + "~", + "<", + ">", + "=", + "+", + ): + username = username.replace(sign, "_") + + self.username_row.handler_block(self.username_handler_id) + self.username_row.set_text(username) + self.username_row.handler_unblock(self.username_handler_id) + + def on_username_changed(self, entry, _pspec): + self.username_manually_set = True + + def get_user_info(self): + return { + "fullname": self.fullname_row.get_text(), + "username": self.username_row.get_text(), + "password": self.password_row.get_text(), + "hostname": self.hostname_row.get_text(), + } diff --git a/iridium_installer/ui/window.py b/iridium_installer/ui/window.py index 0b10eee..9579a5c 100644 --- a/iridium_installer/ui/window.py +++ b/iridium_installer/ui/window.py @@ -158,6 +158,8 @@ class InstallerWindow(Adw.ApplicationWindow): print(f"Mode: {mode}") modules = self.modules_page.get_modules() print(f"Modules: {modules}") + user_info = self.user_page.get_user_info() + print(f"User: {user_info}") partitions_config = {} if mode == "manual":