Enable more sanity checks for Password Changing page
authorSteven Barth <steven@midlink.org>
Thu, 14 Aug 2008 19:19:05 +0000 (19:19 +0000)
committerSteven Barth <steven@midlink.org>
Thu, 14 Aug 2008 19:19:05 +0000 (19:19 +0000)
libs/cbi/luasrc/cbi.lua
libs/cbi/luasrc/view/cbi/simpleform.htm
modules/admin-full/luasrc/model/cbi/admin_system/passwd.lua

index 3b5a7c1b7a3d2fbdf8932aa24f31cfb3e6afefb2..3bb56f36cac517b5a0f93975143be38fc2875d2b 100644 (file)
@@ -287,6 +287,7 @@ end
 function SimpleForm.field(self, class, ...)
        if instanceof(class, AbstractValue) then
                local obj  = class(self, ...)
+               obj.track_missing = true
                self:append(obj)
                return obj
        else
@@ -616,6 +617,7 @@ function AbstractValue.__init__(self, map, option, ...)
        self.tag_missing = {}
        self.deps = {}
 
+       self.track_missing = false
        self.rmempty   = false
        self.default   = nil
        self.size      = nil
@@ -657,14 +659,14 @@ function AbstractValue.parse(self, section)
                if not fvalue then
                        self.tag_invalid[section] = true
                end
-               if fvalue and not (fvalue == self:cfgvalue(section)) then
+               if fvalue and not (fvalue == cvalue) then
                        self:write(section, fvalue)
                end
        else                                                    -- Unset the UCI or error
                if self.rmempty or self.optional then
                        self:remove(section)
-               elseif not fvalue or fvalue ~= cvalue then
-                       --self.tag_missing[section] = true
+               elseif self.track_missing and not fvalue or fvalue ~= cvalue then
+                       self.tag_missing[section] = true
                end
        end
 end
index 68c8cc91694a5525711b1bf23aaa1f02e0c7b824..d2ae401c92ade2b4678b384f244f232e76181c69 100644 (file)
@@ -29,6 +29,12 @@ $Id$
                </fieldset>
                <br />
        </div>
+<%- if self.message then %>
+       <div><%=self.message%></div>
+<%- end %>
+<%- if self.errmessage then %>
+       <div class="error"><%=self.errmessage%></div>
+<%- end %>     
        <div>
 <%- if self.submit ~= false then %>
                <input class="cbi-button-save" type="submit" value="
index 7e766d5ebd17780e2167c98f6ddbb58cd6340016..8ff18cb5cf521e0f179e7efb8db07ac61f6af1b2 100644 (file)
@@ -27,16 +27,15 @@ end
 function f.handle(self, state, data)
        if state == FORM_VALID then
                local stat = luci.sys.user.setpasswd("root", data.pw1) == 0
-               local x = f:field(DummyValue, "_stat")
                
                if stat then
-                       x.value = translate("a_s_changepw_changed")
+                       f.message = translate("a_s_changepw_changed")
                else
-                       x.value = translate("unknownerror")
+                       f.errmessage = translate("unknownerror")
                end
                
-               pw1.render = function() end
-               pw2.render = pw1.render
+               data.pw1 = nil
+               data.pw2 = nil
        end
        return true
 end