Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- os.pullEvent = os.pullEventRaw
- write("Loading Configs..."..'\n')
- UserConfig = fs.open("UserData.config","r")
- UserConfigContent = UserConfig.readAll()
- UserCredentials = textutils.unserialize(UserConfigContent)
- UserConfig.close()
- UserRankConfig = fs.open("UserRank.config","r")
- UserRankContent = UserRankConfig.readAll()
- UserRanks = textutils.unserialize(UserRankContent)
- UserRankConfig.close()
- write("Config Loaded"..'\n')
- write("Welcome to the Login Screen!"..'\n')
- write("Username: ")
- user = read()
- write("Password: ")
- pass = read('*')
- rank = nil
- write("Validating Credentials..."..'\n')
- for username,password in pairs(UserCredentials) do
- if user == username and pass == password then
- success = true
- for username,user_rank in pairs(UserRanks) do
- rank = user_rank
- end
- else
- success = false
- end
- end
- if success == true then
- write("Your Credentials Were Valid, Welcome "..user.."."..'\n')
- shell.run("clear")
- write("Currently Logged in: "..user..'\n'.."System Rank: "..rank..'\n')
- access = true
- local event, key = os.pullEvent('key')
- else
- write("Your Credentials Were Invalid, Please Try Again"..'\n')
- sleep(3)
- os.reboot()
- end
- if access == true and rank == "Admin" then
- while true do
- shell.run("clear")
- write("Possible Command options (Use NumPad Keys): "..'\n')
- write("1 - View all registered users"..'\n')
- write("2 - Add a user/Change user password"..'\n')
- write("3 - Delete a user"..'\n')
- write("4 - Change a user rank/Add user rank"..'\n')
- write("5 - Reboot the system"..'\n')
- write("6 - View logged in user"..'\n')
- local event, key = os.pullEvent('key')
- if key == keys.numPad1 then
- for username,password in pairs(UserCredentials) do
- write(username..'\n')
- end
- write("Press any key to continue")
- local event, key = os.pullEvent('key')
- elseif key == keys.numPad2 then
- write("What is their username: ")
- NewUser = read()
- write("What is their password: ")
- NewPass = read()
- GetUsers = fs.open("UserData.config","r")
- UserFileData = GetUsers.readAll()
- AllUsers = textutils.unserialize(UserFileData)
- GetUsers.close()
- Addusers = fs.open("UserData.config","w")
- AllUsers[NewUser] = NewPass
- Addusers.write(textutils.serialize(AllUsers))
- Addusers.close()
- elseif key == keys.numPad3 then
- write("What is their username: ")
- DelUser = read()
- GetUsers = fs.open("UserData.config","r")
- UserFileData = GetUsers.readAll()
- AllUsers = textutils.unserialize(UserFileData)
- GetUsers.close()
- DelUsers = fs.open("UserData.config","w")
- AllUsers[DelUser] = nil
- DelUsers.write(textutils.serialize(AllUsers))
- DelUsers.close()
- write("Operation Complete, You might need to add rank.")
- elseif key == keys.numPad4 then
- write("What is their username: ")
- RankUsername = read()
- write("What rank do you want to assign: ")
- NewRank = read()
- GetRanks = fs.open("UserRank.config","r")
- RankFileData = GetRanks.readAll()
- AllRanks = textutils.unserialize(RankFileData)
- GetRanks.close()
- EditRanks = fs.open("UserRank.config","w")
- AllRanks[RankUsername] = NewRank
- EditRanks.write(textutils.serialize(AllRanks))
- EditRanks.close()
- elseif key == keys.numPad5 then
- for i=3,1,-1 do
- write("Rebooting the system in "..i.." seconds"..'\n')
- sleep(1)
- end
- elseif key == keys.numPad6 then
- write("Current User: "..user..'\n')
- write("Press any key to continue")
- local event, key = os.pullEvent('key')
- else
- write("There has seemed to be an issue with key"..'\n'.."processing, did you use numpad?")
- end
- end
- elseif access == true and rank == "User" then
- while true do
- shell.run("clear")
- write("Possible Command Options (please use NumPad Keys: "..'\n')
- write("1 - Change Password"..'\n')
- write("2 - View Logged In User"..'\n')
- write("3 - Reboot System"..'\n')
- local event, key = os.pullEvent('key')
- if key == keys.numPad1 then
- write("Confirm Current Password Please: ")
- ConfPass = read('*')
- for username,password in pairs(UserCredentials) do
- if username == user and ConfPass == password then
- write("Password Confirmed. New password: ")
- NewPass = read('*')
- write("Confirm New Password: ")
- NewPassConf = read('*')
- if NewPass == NewPassConf then
- UserCredentials[user] = NewPass
- end
- end
- end
- NewUserList = textutils.serialize(UserCredentials)
- NewUserCred = fs.open("UserData.config","w")
- NewUserCred.write(NewUserList)
- NewUserCred.close()
- elseif key == keys.numPad2 then
- write("Current User: "..user)
- write("Press any key to continue")
- local event, key = os.pullEvent('key')
- elseif key == keys.numPad3 then
- for i=3,1,-1 do
- write("Restarting in "..i.." seconds"..'\n')
- sleep(1)
- end
- os.reboot()
- else
- write("there is something wrong with the key detector"..'\n'.."did you use NumPad?")
- end
- end
- else
- write("You do not have a System Rank yet, contact System Admin")
- write("Press any key to continue.")
- local event, key = os.pullEvent('key')
- os.reboot()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement