Mercurial Hosting > luan
diff src/luan/host/Util.luan @ 1181:51d1342e25ad
luanhost password handling
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 20 Feb 2018 19:50:30 -0700 |
parents | |
children | db7d31f4089a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/luan/host/Util.luan Tue Feb 20 19:50:30 2018 -0700 @@ -0,0 +1,36 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local do_file = Luan.do_file or error() +local Io = require "luan:Io.luan" +local String = require "luan:String.luan" +local lower = String.lower or error() +local encode = String.encode or error() +local Hosting = require "luan:host/Hosting.luan" + +java() +local Base64 = require "java:java.util.Base64" +local MessageDigest = require "java:java.security.MessageDigest" + + +local Util = {} + +function Util.read_password(domain) + domain = lower(domain) + return do_file(Hosting.sites_dir..domain.."/info.luan").password or error() +end + +function Util.write_password(domain,password) + local dir = Hosting.sites_dir..lower(domain) + Io.schemes.file(dir.."/info.luan").write_text( %> +return { + password = "<%=encode(password)%>" +} +<% ) + local sha1 = MessageDigest.getInstance("SHA1").digest(password.getBytes()) + local encoded = Base64.getEncoder().encodeToString(sha1) + Io.schemes.file(dir.."/password.nginx").write_text( %> +admin:{SHA}<%=encoded%> +<% ) +end + +return Util