summaryrefslogtreecommitdiffhomepage
path: root/src/ffluci/controller/admin/system.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/ffluci/controller/admin/system.lua')
-rw-r--r--src/ffluci/controller/admin/system.lua50
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