summaryrefslogtreecommitdiffstats
path: root/password-model.lua
diff options
context:
space:
mode:
authorMike Mason <ms13sp@gmail.com>2007-11-23 16:09:10 +0000
committerMike Mason <ms13sp@gmail.com>2007-11-23 16:09:10 +0000
commitc4db4cc4492f6becef2e41ce849975dcf8cbdec0 (patch)
tree786ab2a04d8602c5569d331c58a51c9178d00148 /password-model.lua
parent3627a09a8a8a487ef265d0cd5be92e8a6806a6da (diff)
downloadacf-alpine-baselayout-c4db4cc4492f6becef2e41ce849975dcf8cbdec0.tar.bz2
acf-alpine-baselayout-c4db4cc4492f6becef2e41ce849975dcf8cbdec0.tar.xz
password model and controller updated
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@361 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'password-model.lua')
-rw-r--r--password-model.lua19
1 files changed, 19 insertions, 0 deletions
diff --git a/password-model.lua b/password-model.lua
index 33dffbd..90fa50d 100644
--- a/password-model.lua
+++ b/password-model.lua
@@ -1,6 +1,7 @@
-- password model methods
module (..., package.seeall)
strsplit = require "split"
+require "fs"
-- no initializer in model - use controller.init for that
@@ -17,3 +18,21 @@ get = function (self)
return (cfe{value=status, name="password"})
end
+--setup so that it will compare password input
+set = function (self, cmd1, cmd2)
+ if cmd1 ~= cmd2 then report = "Invalid or non matching password. Try again"
+ else
+ command = "/usr/bin/cryptpw" .. " " .. cmd1
+ f = io.popen(command)
+ c = f:read("*l")
+ f:close()
+ --this is hardcoded for root should be easy to change
+ newpass = "root:" .. c
+ t = fs.search_replace("/etc/shadow", "root:[!%w%$%/%.]+", newpass)
+ fs.write_file("/etc/shadow", fs.ipairs_string(t))
+ report = "Success. New password set."
+ end
+ return( cfe{value=report, name="report"})
+end
+
+