diff options
Diffstat (limited to 'src/ffluci/controller/admin/system.lua')
-rw-r--r-- | src/ffluci/controller/admin/system.lua | 50 |
1 files changed, 38 insertions, 12 deletions
diff --git a/src/ffluci/controller/admin/system.lua b/src/ffluci/controller/admin/system.lua index 5e32041538..455424eb8a 100644 --- a/src/ffluci/controller/admin/system.lua +++ b/src/ffluci/controller/admin/system.lua @@ -9,19 +9,21 @@ menu = { descr = "System", order = 20, entries = { - {action = "passwd", descr = "Passwort"}, + {action = "passwd", descr = "Passwort ändern"}, + {action = "sshkeys", descr = "SSH-Schlüssel"}, + {action = "reboot", descr = "Neu starten"}, } } function action_editor() - local file = ffluci.http.formvalue("file") + local file = ffluci.http.formvalue("file", "") local data = ffluci.http.formvalue("data") local err = nil local msg = nil - local stat = nil + local stat = true if file and data then - stat, err = pcall(ffluci.fs.writefile, file, data) + stat, err = ffluci.fs.writefile(file, data) end if not stat then @@ -30,11 +32,9 @@ function action_editor() msg = table.concat(err, " ") end - local stat, cnt = pcall(ffluci.fs.readfile, fname) - if stat and cnt then + local cnt, err = ffluci.fs.readfile(file) + if cnt then cnt = ffluci.util.pcdata(cnt) - else - cnt = nil end ffluci.template.render("admin_system/editor", {fn=file, cnt=cnt, msg=msg}) end @@ -42,12 +42,38 @@ end function action_passwd() local p1 = ffluci.http.formvalue("pwd1") local p2 = ffluci.http.formvalue("pwd2") - local msg = nil - local cm + local stat = nil if p1 or p2 then - msg = ffluci.sys.user.setpasswd("root", p1, p2) + if p1 == p2 then + stat = ffluci.sys.user.setpasswd("root", p1) + else + stat = 10 + end + end + + ffluci.template.render("admin_system/passwd", {stat=stat}) +end + +function action_reboot() + ffluci.template.render("admin_system/reboot") + ffluci.sys.reboot() +end + +function action_sshkeys() + local file = "/etc/dropbear/authorized_keys" + local data = ffluci.http.formvalue("data") + local stat = nil + local err = nil + + if data then + stat, err = ffluci.fs.writefile(file, data) + end + + local cnt = ffluci.fs.readfile(file) + if cnt then + cnt = ffluci.util.pcdata(cnt) end - ffluci.template.render("admin_system/passwd", {msg=msg}) + ffluci.template.render("admin_system/sshkeys", {cnt=cnt, msg=err}) end
\ No newline at end of file |