From d0b30feca9b92a28da7a2bf1aceba7e24009240d Mon Sep 17 00:00:00 2001 From: Leonmmcoset Date: Sun, 31 Aug 2025 21:26:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=AE=89=E5=85=A8):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E8=B4=A6=E6=88=B7=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=92=8C=E7=99=BB=E5=BD=95=E9=AA=8C=E8=AF=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在安装过程中添加管理员账户创建流程,并在系统启动时进行登录验证 更新系统版本号为 LeonOS Alpha 1.1 --- data/computercraft/lua/bios.lua | 27 ++++++++++++++++++++++++++- installer.lua | 22 ++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/data/computercraft/lua/bios.lua b/data/computercraft/lua/bios.lua index 703f2b7..ee9a84a 100644 --- a/data/computercraft/lua/bios.lua +++ b/data/computercraft/lua/bios.lua @@ -1,4 +1,4 @@ -_G._HOST = _G._HOST .. " (LeonOS 1.6.0)" +_G._HOST = _G._HOST .. " (LeonOS Alpha 1.1)" local fs = rawget(_G, "fs") @@ -184,6 +184,31 @@ end expect = require("cc.expect").expect +-- Admin login verification +local tu = require("rom.apis.textutils") +local admin_username = settings.get("LeonOS.users.admin.username") +local admin_password = settings.get("LeonOS.users.admin.password") + +if admin_username then + term.clear() + tu.coloredPrint(colors.yellow, "LeonOS Login\n=======================") + tu.coloredPrint("Username: ", colors.lightBlue, admin_username) + + if admin_password then + tu.coloredPrint("Password: ") + local input_password = read(nil, {}, nil, true) -- Use password mode + + while input_password ~= admin_password do + tu.coloredPrint(colors.red, "Incorrect password!\n") + tu.coloredPrint("Password: ") + input_password = read(nil, {}, nil, true) + end + else + tu.coloredPrint(colors.green, "No password set. Press Enter to continue.") + read() + end +end + local thread = require("rc.thread") thread.start() diff --git a/installer.lua b/installer.lua index 0501d28..eb81a70 100644 --- a/installer.lua +++ b/installer.lua @@ -86,6 +86,28 @@ if #ROM_DIR == 0 then ROM_DIR = DEFAULT_ROM_DIR end ROM_DIR = "/"..shell.resolve(ROM_DIR) settings.set("LeonOS.rom_dir", ROM_DIR) + +-- Create admin user +print("") +tu.coloredPrint(colors.yellow, "Create Administrator Account\n=======================") +tu.coloredPrint("Enter admin username: ") +local admin_username = read() +while #admin_username == 0 do + tu.coloredPrint(colors.red, "Username cannot be empty!\n") + tu.coloredPrint("Enter admin username: ") + admin_username = read() +end + +tu.coloredPrint("Enter admin password (leave empty for no password): ") +local admin_password = read(nil, {}, nil, true) -- Use password mode + +-- Save user info +settings.set("LeonOS.users.admin.username", admin_username) +if #admin_password > 0 then + settings.set("LeonOS.users.admin.password", admin_password) +else + settings.set("LeonOS.users.admin.password", nil) +end settings.save() tu.coloredPrint(colors.white, "Installing LeonOS to ", colors.lightBlue,