From baebeee98f439bed42ba395a132984adccc8ffd7 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer <mschiffer@universe-factory.net> Date: Mon, 14 Jul 2014 22:09:43 +0200 Subject: [PATCH] gluon-luci-admin: support disabling password login again --- .../lib/lua/luci/model/cbi/admin/remote.lua | 43 ++++++++++++------- .../lib/lua/luci/view/admin/expertmode.htm | 12 +++--- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/package/gluon-luci-admin/files/usr/lib/lua/luci/model/cbi/admin/remote.lua b/package/gluon-luci-admin/files/usr/lib/lua/luci/model/cbi/admin/remote.lua index a3ce7f62c..8617c439f 100644 --- a/package/gluon-luci-admin/files/usr/lib/lua/luci/model/cbi/admin/remote.lua +++ b/package/gluon-luci-admin/files/usr/lib/lua/luci/model/cbi/admin/remote.lua @@ -16,16 +16,14 @@ $Id$ local fs = require "nixio.fs" -local m, s, pw1, pw2 - -m = Map("system", "Remotezugriff") +local m = Map("system", "SSH-Keys") m.submit = "Speichern" m.reset = "Zurücksetzen" m.pageaction = false m.template = "admin/expertmode" if fs.access("/etc/config/dropbear") then - s = m:section(TypedSection, "_keys", nil, + local s = m:section(TypedSection, "_dummy1", nil, "Hier hast du die Möglichkeit SSH-Keys (einen pro Zeile) zu hinterlegen:") s.addremove = false @@ -57,37 +55,52 @@ if fs.access("/etc/config/dropbear") then end end -s = m:section(TypedSection, "_pass", nil, - "Alternativ kannst du auch ein Passwort setzen. Wähle bitte ein sicheres Passwort, das du nirgendswo anders verwendest.") +local m2 = Map("system", "Passwort") +m2.submit = "Speichern" +m2.reset = false +m2.pageaction = false +m2.template = "admin/expertmode" + +local s = m2:section(TypedSection, "_dummy2", nil, +[[Alternativ kannst du auch ein Passwort setzen. Wähle bitte ein sicheres Passwort, das du nirgendwo anders verwendest.<br /><br /> +Beim Setzen eines leeren Passworts wird der Login per Passwort gesperrt (dies ist die Standard-Einstellung).]]) s.addremove = false s.anonymous = true -pw1 = s:option(Value, "pw1", "Passwort") +local pw1 = s:option(Value, "pw1", "Passwort") pw1.password = true -pw2 = s:option(Value, "pw2", "Wiederholung") +local pw2 = s:option(Value, "pw2", "Wiederholung") pw2.password = true function s.cfgsections() return { "_pass" } end -function m.on_commit(map) +function m2.on_commit(map) local v1 = pw1:formvalue("_pass") local v2 = pw2:formvalue("_pass") - if v1 and v2 and #v1 > 0 and #v2 > 0 then + if v1 and v2 then if v1 == v2 then - if luci.sys.user.setpasswd(luci.dispatcher.context.authuser, v1) == 0 then - m.message = "Passwort geändert." + if #v1 > 0 then + if luci.sys.user.setpasswd(luci.dispatcher.context.authuser, v1) == 0 then + m2.message = "Passwort geändert." + else + m2.errmessage = "Das Passwort konnte nicht geändert werden." + end else - m.errmessage = "Das Passwort konnte nicht geändert werden." + -- We don't check the return code here as the error 'password for root is already locked' is normal... + os.execute('passwd -l root >/dev/null') + m2.message = "Passwort gelöscht." end else - m.errmessage = "Die beiden Passwörter stimmen nicht überein." + m2.errmessage = "Die beiden Passwörter stimmen nicht überein." end end end -return m +local c = Compound(m, m2) +c.pageaction = false +return c diff --git a/package/gluon-luci-admin/files/usr/lib/lua/luci/view/admin/expertmode.htm b/package/gluon-luci-admin/files/usr/lib/lua/luci/view/admin/expertmode.htm index 2907ecb3a..53947f3c3 100644 --- a/package/gluon-luci-admin/files/usr/lib/lua/luci/view/admin/expertmode.htm +++ b/package/gluon-luci-admin/files/usr/lib/lua/luci/view/admin/expertmode.htm @@ -1,9 +1,3 @@ -<%- if self.message then %> - <p class="message success"><%=self.message%></p> -<%- end %> -<%- if self.errmessage then %> - <p class="message error"><%=self.errmessage%></p> -<%- end %> <% if not self.embedded then %> <form method="post" enctype="multipart/form-data" action="<%=REQUEST_URI%>"> <div> @@ -13,6 +7,12 @@ <% end %> <div class="cbi-map" id="cbi-<%=self.config%>"> <% if self.title and #self.title > 0 then %><h2><a id="content" name="content"><%=self.title%></a></h2><% end %> + <%- if self.message then %> + <p class="message success"><%=self.message%></p> + <%- end %> + <%- if self.errmessage then %> + <p class="message error"><%=self.errmessage%></p> + <%- end %> <% if self.description and #self.description > 0 then %><div class="cbi-map-descr"><%=self.description%></div><% end %> <% self:render_children() %> </div> -- GitLab