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,