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