comparison src/get_password.html.luan @ 15:a6e72cd199f1

email security
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 01 Oct 2023 19:53:46 -0600
parents 46f6b69e8b10
children
comparison
equal deleted inserted replaced
14:49461857ed79 15:a6e72cd199f1
1 local Luan = require "luan:Luan.luan" 1 local Luan = require "luan:Luan.luan"
2 local error = Luan.error 2 local error = Luan.error
3 local String = require "luan:String.luan"
4 local matches = String.matches or error()
3 local Io = require "luan:Io.luan" 5 local Io = require "luan:Io.luan"
4 local output_of = Io.output_of or error() 6 local output_of = Io.output_of or error()
5 local Http = require "luan:http/Http.luan" 7 local Http = require "luan:http/Http.luan"
6 local Mail = require "luan:mail/Mail.luan" 8 local Mail = require "luan:mail/Mail.luan"
7 local Shared = require "site:/lib/Shared.luan" 9 local Shared = require "site:/lib/Shared.luan"
14 16
15 17
16 local send_mail = config.mail_info and Mail.sender(config.mail_info).send 18 local send_mail = config.mail_info and Mail.sender(config.mail_info).send
17 19
18 local function handle(email) 20 local function handle(email)
21 matches( email, [[^(\w[-+~.\w]*)@[-\w]+(\\.[-\w]+)*\.[a-zA-Z]+$]] ) or error "invalid email"
19 local change = Http.request.parameters.change ~= nil 22 local change = Http.request.parameters.change ~= nil
20 local password = config.users[email] 23 local password = config.users[email]
21 if password == nil or change then 24 if password == nil or change then
22 password = new_password() 25 password = new_password()
23 local raw_config = get_raw_config() 26 local raw_config = get_raw_config()