Mercurial Hosting > luan
comparison src/luan/host/main.luan @ 1181:51d1342e25ad
luanhost password handling
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 20 Feb 2018 19:50:30 -0700 |
parents | 1f9d34a6f308 |
children | 0b55a1af5a44 |
comparison
equal
deleted
inserted
replaced
1180:8ca49f5e114d | 1181:51d1342e25ad |
---|---|
14 local matches = String.matches or error() | 14 local matches = String.matches or error() |
15 local Hosting = require "luan:host/Hosting.luan" | 15 local Hosting = require "luan:host/Hosting.luan" |
16 local Logging = require "luan:logging/Logging.luan" | 16 local Logging = require "luan:logging/Logging.luan" |
17 local logger = Logging.logger "main" | 17 local logger = Logging.logger "main" |
18 local WebHandler = require "java:luan.host.WebHandler" | 18 local WebHandler = require "java:luan.host.WebHandler" |
19 local Util = require "classpath:luan/host/Util.luan" | |
20 local read_password = Util.read_password or error() | |
21 local write_password = Util.write_password or error() | |
19 | 22 |
20 | 23 |
21 local sites_dir = Io.schemes.file(Hosting.sites_dir) | 24 local sites_dir = Io.schemes.file(Hosting.sites_dir) |
22 | 25 |
23 sites_dir.mkdir() | 26 sites_dir.mkdir() |
46 type(domain)=="string" or error() | 49 type(domain)=="string" or error() |
47 type(password)=="string" or error() | 50 type(password)=="string" or error() |
48 domain = lower(domain) | 51 domain = lower(domain) |
49 local dir = sites_dir.child(domain) | 52 local dir = sites_dir.child(domain) |
50 if dir.exists() then | 53 if dir.exists() then |
51 local pwd = dir.child("password").read_text() | 54 local pwd = read_password(domain) |
52 if pwd ~= password then | 55 if pwd ~= password then |
53 error "wrong password" | 56 error "wrong password" |
54 end | 57 end |
55 return dir.child("site") | 58 return dir.child("site") |
56 else | 59 else |
100 type(password)=="string" or error() | 103 type(password)=="string" or error() |
101 domain = lower(domain) | 104 domain = lower(domain) |
102 local dir = sites_dir.child(domain) | 105 local dir = sites_dir.child(domain) |
103 dir.exists() and error "already exists" | 106 dir.exists() and error "already exists" |
104 dir.mkdir() | 107 dir.mkdir() |
105 dir.child("password").write(password) | 108 write_password(domain,password) |
106 dir = dir.child("site") | 109 dir = dir.child("site") |
107 dir.mkdir() | 110 dir.mkdir() |
108 return { name = dir.name(), path = dir.to_string(), children = {} } | 111 return { name = dir.name(), path = dir.to_string(), children = {} } |
109 end | 112 end |
110 | 113 |
175 end | 178 end |
176 | 179 |
177 function fns.change_password(domain,old_password,new_password) | 180 function fns.change_password(domain,old_password,new_password) |
178 local site_dir = get_dir(domain,old_password) | 181 local site_dir = get_dir(domain,old_password) |
179 site_dir or error "domain not found" | 182 site_dir or error "domain not found" |
180 site_dir.parent().child("password").write(new_password) | 183 write_password(domain,new_password) |
181 WebHandler.removeHandler(domain) | 184 WebHandler.removeHandler(domain) |
182 WebHandler.loadHandler(domain) | 185 WebHandler.loadHandler(domain) |
183 end | 186 end |
184 | 187 |
185 fns.call = WebHandler.callSite | 188 fns.call = WebHandler.callSite |