Enable more sanity checks for Password Changing page

This commit is contained in:
Steven Barth 2008-08-14 19:19:05 +00:00
parent 15e2e16c6d
commit 1616d5a81e
3 changed files with 15 additions and 8 deletions

View file

@ -287,6 +287,7 @@ end
function SimpleForm.field(self, class, ...) function SimpleForm.field(self, class, ...)
if instanceof(class, AbstractValue) then if instanceof(class, AbstractValue) then
local obj = class(self, ...) local obj = class(self, ...)
obj.track_missing = true
self:append(obj) self:append(obj)
return obj return obj
else else
@ -616,6 +617,7 @@ function AbstractValue.__init__(self, map, option, ...)
self.tag_missing = {} self.tag_missing = {}
self.deps = {} self.deps = {}
self.track_missing = false
self.rmempty = false self.rmempty = false
self.default = nil self.default = nil
self.size = nil self.size = nil
@ -657,14 +659,14 @@ function AbstractValue.parse(self, section)
if not fvalue then if not fvalue then
self.tag_invalid[section] = true self.tag_invalid[section] = true
end end
if fvalue and not (fvalue == self:cfgvalue(section)) then if fvalue and not (fvalue == cvalue) then
self:write(section, fvalue) self:write(section, fvalue)
end end
else -- Unset the UCI or error else -- Unset the UCI or error
if self.rmempty or self.optional then if self.rmempty or self.optional then
self:remove(section) self:remove(section)
elseif not fvalue or fvalue ~= cvalue then elseif self.track_missing and not fvalue or fvalue ~= cvalue then
--self.tag_missing[section] = true self.tag_missing[section] = true
end end
end end
end end

View file

@ -29,6 +29,12 @@ $Id$
</fieldset> </fieldset>
<br /> <br />
</div> </div>
<%- if self.message then %>
<div><%=self.message%></div>
<%- end %>
<%- if self.errmessage then %>
<div class="error"><%=self.errmessage%></div>
<%- end %>
<div> <div>
<%- if self.submit ~= false then %> <%- if self.submit ~= false then %>
<input class="cbi-button-save" type="submit" value=" <input class="cbi-button-save" type="submit" value="

View file

@ -27,16 +27,15 @@ end
function f.handle(self, state, data) function f.handle(self, state, data)
if state == FORM_VALID then if state == FORM_VALID then
local stat = luci.sys.user.setpasswd("root", data.pw1) == 0 local stat = luci.sys.user.setpasswd("root", data.pw1) == 0
local x = f:field(DummyValue, "_stat")
if stat then if stat then
x.value = translate("a_s_changepw_changed") f.message = translate("a_s_changepw_changed")
else else
x.value = translate("unknownerror") f.errmessage = translate("unknownerror")
end end
pw1.render = function() end data.pw1 = nil
pw2.render = pw1.render data.pw2 = nil
end end
return true return true
end end