Automatic usernames

This commit is contained in:
2026-02-02 15:20:23 +01:00
parent 658040c138
commit 2c7b9c5b1f
2 changed files with 68 additions and 10 deletions

View File

@@ -29,10 +29,16 @@ class UserPage(Adw.Bin):
self.fullname_row = Adw.EntryRow() self.fullname_row = Adw.EntryRow()
self.fullname_row.set_title("Full Name") 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) group.add(self.fullname_row)
self.username_row = Adw.EntryRow() self.username_row = Adw.EntryRow()
self.username_row.set_title("Username") 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) group.add(self.username_row)
self.password_row = Adw.PasswordEntryRow() self.password_row = Adw.PasswordEntryRow()
@@ -50,16 +56,66 @@ class UserPage(Adw.Bin):
self.hostname_row = Adw.EntryRow() self.hostname_row = Adw.EntryRow()
self.hostname_row.set_title("Hostname") 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) host_group.add(self.hostname_row)
# Administrator self.username_manually_set = False
admin_group = Adw.PreferencesGroup()
admin_group.set_margin_top(12)
box.append(admin_group)
admin_row = Adw.SwitchRow() def on_fullname_changed(self, entry, _pspec):
admin_row.set_title("Make this user administrator") if self.username_manually_set:
admin_row.set_subtitle("Add to sudoers group") return
admin_row.set_active(True)
admin_group.add(admin_row) 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(),
}

View File

@@ -158,6 +158,8 @@ class InstallerWindow(Adw.ApplicationWindow):
print(f"Mode: {mode}") print(f"Mode: {mode}")
modules = self.modules_page.get_modules() modules = self.modules_page.get_modules()
print(f"Modules: {modules}") print(f"Modules: {modules}")
user_info = self.user_page.get_user_info()
print(f"User: {user_info}")
partitions_config = {} partitions_config = {}
if mode == "manual": if mode == "manual":