* Rewritten menu builder
[project/luci.git] / src / ffluci / controller / admin / system.lua
index 5e32041..c4ba027 100644 (file)
@@ -5,23 +5,15 @@ require("ffluci.http")
 require("ffluci.util")
 require("ffluci.fs")
 
-menu = {
-       descr   = "System",
-       order   = 20,
-       entries = {
-               {action = "passwd", descr = "Passwort"},
-       }
-}
-
 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 +22,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 +32,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