sPhone/src/apps/system/settings.lua

155 lines
3.9 KiB
Lua
Raw Normal View History

2015-09-21 21:34:35 +02:00
local pwChange
local pwChangeRep
2015-08-19 11:45:35 +02:00
local menu = {
"Update",
2015-10-11 10:27:34 +02:00
"Change Password",
2015-08-19 11:45:35 +02:00
}
local function clear()
term.setBackgroundColor(colors.white)
term.setTextColor(colors.black)
term.clear()
term.setCursorPos(1,1)
end
local function header()
clear()
local w, h = term.getSize()
2015-09-21 21:34:35 +02:00
paintutils.drawLine(1,1,w,1, colors.blue)
2015-08-19 11:45:35 +02:00
term.setTextColor(colors.white)
term.setCursorPos(1,1)
write(" "..sPhone.user)
term.setCursorPos(1,2)
term.setBackgroundColor(colors.white)
term.setTextColor(colors.black)
end
local function changePassword()
while true do
term.clear()
term.setCursorPos(1,1)
paintutils.drawImage(paintutils.loadImage("/.sPhone/interfaces/login"),1,1)
term.setTextColor(colors.white)
2015-09-21 21:34:35 +02:00
term.setBackgroundColor(colors.blue)
2015-08-19 11:45:35 +02:00
term.setCursorPos(1,1)
write(" "..sPhone.user)
if sPhone.wrongPassword then
term.setTextColor(colors.red)
term.setBackgroundColor(colors.white)
sertextext.center(13," Wrong Password")
end
term.setTextColor(colors.black)
term.setBackgroundColor(colors.white)
sertextext.center(7," Current Password")
2015-09-21 21:34:35 +02:00
local loginTerm = window.create(term.native(), 8,10,12,1, true)
term.redirect(loginTerm)
term.setBackgroundColor(colors.white)
term.clear()
term.setCursorPos(1,1)
term.setTextColor(colors.black)
local password = read("*")
term.redirect(sPhone.mainTerm)
2015-08-19 11:45:35 +02:00
local fpw = fs.open("/.sPhone/.password","r")
if sha256.sha256(password) ~= fpw.readLine() then
sPhone.wrongPassword = true
else
sPhone.wrongPassword = false
fpw.close()
break
end
end
while true do
term.clear()
term.setCursorPos(1,1)
paintutils.drawImage(paintutils.loadImage("/.sPhone/interfaces/login"),1,1)
term.setTextColor(colors.white)
2015-09-21 21:34:35 +02:00
term.setBackgroundColor(colors.blue)
2015-08-19 11:45:35 +02:00
term.setCursorPos(1,1)
write(" "..sPhone.user)
if sPhone.wrongPassword then
term.setTextColor(colors.red)
term.setBackgroundColor(colors.white)
sertextext.center(13," Wrong Password")
end
term.setTextColor(colors.black)
term.setBackgroundColor(colors.white)
sertextext.center(7," New Password")
2015-09-21 21:34:35 +02:00
local loginTerm = window.create(term.native(), 8,10,12,1, true)
term.redirect(loginTerm)
term.setBackgroundColor(colors.white)
term.clear()
term.setCursorPos(1,1)
term.setTextColor(colors.black)
pwChange = read("*")
term.redirect(sPhone.mainTerm)
2015-08-19 11:45:35 +02:00
term.clear()
term.setCursorPos(1,1)
paintutils.drawImage(paintutils.loadImage("/.sPhone/interfaces/login"),1,1)
term.setTextColor(colors.white)
2015-09-21 21:34:35 +02:00
term.setBackgroundColor(colors.blue)
2015-08-19 11:45:35 +02:00
term.setCursorPos(1,1)
write(" "..sPhone.user)
term.setTextColor(colors.black)
term.setBackgroundColor(colors.white)
sertextext.center(7," Repeat Password")
2015-09-21 21:34:35 +02:00
local loginTerm = window.create(term.native(), 8,10,12,1, true)
term.redirect(loginTerm)
term.setBackgroundColor(colors.white)
term.clear()
term.setCursorPos(1,1)
term.setTextColor(colors.black)
pwChangeRep = read("*")
term.redirect(sPhone.mainTerm)
2015-08-19 11:45:35 +02:00
if sha256.sha256(pwChange) ~= sha256.sha256(pwChangeRep) then
sPhone.wrongPassword = true
else
sPhone.wrongPassword = false
break
end
end
if not sPhone.wrongPassword then
local f = fs.open("/.sPhone/.password","w")
f.write(sha256.sha256(pwChangeRep))
f.close()
end
header()
term.setCursorPos(2,3)
print("All Set!")
sleep(2)
return
end
local w, h = term.getSize()
local function redraw()
clear()
local w, h = term.getSize()
2015-09-21 21:34:35 +02:00
paintutils.drawLine(1,1,w,1, colors.blue)
2015-08-19 11:45:35 +02:00
term.setTextColor(colors.white)
term.setCursorPos(2,1)
write(sPhone.user)
term.setCursorPos(w,1)
write("X")
term.setCursorPos(1,3)
term.setBackgroundColor(colors.white)
term.setTextColor(colors.black)
end
redraw()
while true do
redraw()
2015-09-21 21:34:35 +02:00
local name, id = sPhone.menu(menu, "Settings",true)
2015-08-19 11:45:35 +02:00
if id == 0 then
return
elseif id == 1 then
setfenv(loadstring(http.get("https://raw.githubusercontent.com/Sertex-Team/sPhone/master/src/installer.lua").readAll()),getfenv())()
elseif id == 2 then
changePassword()
end
2015-08-21 14:37:24 +02:00
end