gluon-luci-admin: support disabling password login again

This commit is contained in:
Matthias Schiffer 2014-07-14 22:09:43 +02:00
parent 5284b805dd
commit 4bebca140d
2 changed files with 34 additions and 21 deletions

View File

@ -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

View File

@ -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>