luci-app-radicale2: Avoid losing password hash
authorDaniel F. Dickinson <cshored@thecshore.com>
Thu, 17 Jan 2019 00:11:26 +0000 (19:11 -0500)
committerDaniel F. Dickinson <cshored@thecshore.com>
Thu, 17 Jan 2019 00:11:28 +0000 (19:11 -0500)
This fixes a case where one could lose an already exising password hash
when changing another users' password or creating a new user.

Signed-off-by: Daniel F. Dickinson <cshored@thecshore.com>
applications/luci-app-radicale2/luasrc/model/cbi/radicale2/auth.lua

index 71fd3a32ee4112222993ff0081192581a4e67a17..b352bb46aab379f569e261a5a5f7fd5ba2777651 100644 (file)
@@ -135,33 +135,19 @@ function encpass(self, section)
        return encvalue and encvalue.encrypted_password
 end
 
-pass.parse = function(self, section, novld)
-       local encvalue
-       if self:cfgvalue(section) then
-               if not plainpass:cfgvalue(section) then
-                       return Value.parse(self, section)
-               else
-                       encvalue = encpass(self, section)
-                       if encvalue then
-                               self.formvalue = function(self, section)
-                                       return encvalue
-                               end
-                               return Value.parse(self, section, novld)
-                       else
-                               self.formvalue = self.cfgvalue
-                               return Value.parse(self, section, novld)
-                       end
-               end
+pass.cfgvalue = function(self, section)
+       if not plainpass:formvalue(section) then
+               return Value.cfgvalue(self, section)
        else
-               encvalue = encpass(self, section)
-               if encvalue then
-                       self.formvalue = function(self, section)
-                               return encvalue
-                       end
-                       return Value.parse(self, section, novld)
-               else
-                       return nil
-               end
+               return Value.formvalue(self, section)
+       end
+end
+
+pass.formvalue = function(self, section)
+       if not plainpass:formvalue(section) then
+               return Value.formvalue(self, section)
+       else
+               return encpass(self, section) or Value.formvalue(self, section)
        end
 end