opus/sys/apps/system/password.lua

49 lines
1.2 KiB
Lua
Raw Normal View History

local Security = require('opus.security')
local SHA = require('opus.crypto.sha2')
local UI = require('opus.ui')
2018-12-23 03:11:16 +00:00
local colors = _G.colors
2019-01-30 20:11:41 +00:00
local passwordTab = UI.Tab {
2018-12-23 03:11:16 +00:00
tabTitle = 'Password',
description = 'Wireless network password',
2020-03-31 15:57:23 +00:00
[1] = UI.Window {
x = 2, y = 2, ex = -2, ey = 4,
},
2018-12-23 03:11:16 +00:00
newPass = UI.TextEntry {
x = 3, ex = -3, y = 3,
2018-12-23 03:11:16 +00:00
limit = 32,
mask = true,
shadowText = 'new password',
accelerators = {
enter = 'new_password',
},
},
button = UI.Button {
2020-03-31 15:57:23 +00:00
x = -8, ex = -2, y = -2,
text = 'Apply',
2018-12-23 03:11:16 +00:00
event = 'update_password',
},
info = UI.TextArea {
2020-03-31 15:57:23 +00:00
x = 2, ex = -2, y = 6, ey = -4,
backgroundColor = colors.black,
textColor = colors.yellow,
2018-12-23 03:11:16 +00:00
inactive = true,
value = 'Add a password to enable other computers to connect to this one.',
}
}
function passwordTab:eventHandler(event)
if event.type == 'update_password' then
if not self.newPass.value or #self.newPass.value == 0 then
2018-12-23 03:11:16 +00:00
self:emit({ type = 'error_message', message = 'Invalid password' })
else
2019-06-28 10:33:47 +00:00
Security.updatePassword(SHA.compute(self.newPass.value))
2018-12-23 03:11:16 +00:00
self:emit({ type = 'success_message', message = 'Password updated' })
end
return true
end
end
return passwordTab