diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-06-06 14:10:46 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-06-06 14:10:46 +0000 |
commit | 7344a5a7fbd434a160ba9ae28d8dfd709df79313 (patch) | |
tree | 445467b2db7dd4096cdfeeb9d0793e3c55f205a1 /app/acf-util | |
parent | b696b28ec60c4386f452d36b6832b69324615dc9 (diff) | |
download | acf-core-7344a5a7fbd434a160ba9ae28d8dfd709df79313.tar.bz2 acf-core-7344a5a7fbd434a160ba9ae28d8dfd709df79313.tar.xz |
Moved clientdata processing from password model to controller.
git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@1208 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'app/acf-util')
-rwxr-xr-x | app/acf-util/password-controller.lua | 35 | ||||
-rwxr-xr-x | app/acf-util/password-model.lua | 50 |
2 files changed, 46 insertions, 39 deletions
diff --git a/app/acf-util/password-controller.lua b/app/acf-util/password-controller.lua index 4493e4a..9ad8e04 100755 --- a/app/acf-util/password-controller.lua +++ b/app/acf-util/password-controller.lua @@ -7,23 +7,27 @@ function status(self) end function editme(self) - local output + local output = self.model.read_user(self, self.sessiondata.userinfo.userid) if clientdata.Save then -- just to make sure can't modify any other user from this action self.clientdata.userid = self.sessiondata.userinfo.userid + + -- As a special case for update_user, settings that don't change are nil self.clientdata.roles = nil -- if password is blank, don't update it or require it if self.clientdata.password == "" then self.clientdata.password = nil end if self.clientdata.password_confirm == "" then self.clientdata.password_confirm = nil end + for name,value in pairs(output.value) do + value.value = self.clientdata[name] + end + -- Update userinfo - output = self.model.update_user(self, self.clientdata) + output = self.model.update_user(self, output) if not output.errtxt then output.descr = "Saved user" end - else - output = self.model.read_user(self, self.sessiondata.userinfo.userid) end -- Don't allow changing of roles for yourself @@ -36,21 +40,24 @@ function editme(self) end function edituser(self) - local output + local output = self.model.read_user(self, self.clientdata.userid) if self.clientdata.Save then + -- As a special case for update_user, settings that don't change are nil -- if password is blank, don't update it or require it if self.clientdata.password == "" then self.clientdata.password = nil end if self.clientdata.password_confirm == "" then self.clientdata.password_confirm = nil end + for name,value in pairs(output.value) do + value.value = self.clientdata[name] + end + -- Update userinfo - output = self.model.update_user(self, self.clientdata) + output = self.model.update_user(self, output) -- result if not output.errtxt then redirect(self, "status") end - else - output = self.model.read_user(self, self.clientdata.userid) end output.type = "form" @@ -60,17 +67,21 @@ function edituser(self) end function newuser(self) - local output + local output = self.model.read_user(self) if self.clientdata.Save then + for name,value in pairs(output.value) do + if self.clientdata[name] then + value.value = self.clientdata[name] + end + end + -- Update userinfo - output = self.model.create_user(self, self.clientdata) + output = self.model.create_user(self, output) -- result if not output.errtxt then redirect(self, "status") end - else - output = self.model.read_user(self) end output.type = "form" diff --git a/app/acf-util/password-model.lua b/app/acf-util/password-model.lua index 12e29b0..7454d79 100755 --- a/app/acf-util/password-model.lua +++ b/app/acf-util/password-model.lua @@ -2,8 +2,8 @@ module(..., package.seeall) local auth=require("authenticator-plaintext") -function create_user(self, clientdata) - return update_user(self, clientdata, true) +function create_user(self, userdata) + return update_user(self, userdata, true) end function read_user(self, user) @@ -45,46 +45,42 @@ function read_user(self, user) return cfe({ type="group", value=config, errtxt = errtxt, label="User Config" }) end -function update_user(self, clientdata, newuser) - local config +function update_user(self, userdata, newuser) local result - local errtxt local errormessage = {} -- Try to write new or update existing data if newuser == true then - result, errormessage = auth.new_settings(self, clientdata.userid, clientdata.username, clientdata.password, clientdata.password_confirm, clientdata.roles) + result, errormessage = auth.new_settings(self, userdata.value.userid.value, userdata.value.username.value, userdata.value.password.value, userdata.value.password_confirm.value, userdata.value.roles.value) if result == false then - errtxt = "Failed to create new user" + userdata.errtxt = "Failed to create new user" end else - result, errormessage = auth.change_settings(self, clientdata.userid, clientdata.username, clientdata.password, clientdata.password_confirm, clientdata.roles) + -- As a special case, settings that don't change are nil + result, errormessage = auth.change_settings(self, userdata.value.userid.value, userdata.value.username.value, userdata.value.password.value, userdata.value.password_confirm.value, userdata.value.roles.value) if result == false then - errtxt = "Failed to save changes" + userdata.errtxt = "Failed to save changes" + end + -- We can't return any nil values, so set then + local olduserdata = read_user(self, userdata.value.userid.value) + for name,value in pairs(userdata.value) do + if value.value == nil then + value.value = olduserdata.value[name].value + end end end - if result == true then - config = read_user(self, clientdata.userid) - else - -- get a blank table - config = read_user(self) + userdata.value.password.value = "" + userdata.value.password_confirm.value = "" - -- now, copy in the user info and errors - config.value.userid.value = clientdata.userid or "" - config.value.userid.errtxt = errormessage.userid - config.value.username.value = clientdata.username or config.value.username.value - config.value.username.errtxt = errormessage.username - config.value.roles.value = clientdata.roles or config.value.roles.value - config.value.roles.errtxt = errormessage.roles - --config.value.password.value = clientdata.password or config.value.password.value - config.value.password.errtxt = errormessage.password - --config.value.password_confirm.value = clientdata.password_confirm or config.value.password_confirm.value - config.value.password_confirm.errtxt = errormessage.password_confirm - config.errtxt = errtxt + if result == false then + -- now, copy in the errors + for name,value in pairs(userdata.value) do + value.errtxt = errormessage[name] + end end - return config + return userdata end function get_users(self) |