Mercurial Hosting > chat
diff src/login.js.luan @ 117:e2deb5236f26
better login
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Thu, 04 Dec 2025 21:43:47 -0700 |
| parents | src/manual_login.js.luan@1aa50739475a |
| children |
line wrap: on
line diff
--- a/src/login.js.luan Thu Dec 04 12:13:01 2025 -0700 +++ b/src/login.js.luan Thu Dec 04 21:43:47 2025 -0700 @@ -1,39 +1,38 @@ local Luan = require "luan:Luan.luan" local error = Luan.error -local ipairs = Luan.ipairs or error() -local Html = require "luan:Html.luan" -local url_encode = Html.url_encode or error() local Io = require "luan:Io.luan" local Http = require "luan:http/Http.luan" +local User = require "site:/lib/User.luan" local Shared = require "site:/lib/Shared.luan" -local send_mail_async = Shared.send_mail_async or error() -local Utils = require "site:/lib/Utils.luan" -local to_list = Utils.to_list or error() -local User = require "site:/lib/User.luan" +local add_with = Shared.add_with or error() return function() local email = Http.request.parameters.email or error() - local user = User.get_or_create_by_email(email) - local url = user.login_url() - local with = Http.request.parameters.with - with = to_list(with) - for _, email in ipairs(with) do - url = url.."&with="..url_encode(email) + local password = Http.request.parameters.password or error() + Io.stdout = Http.response.text_writer() + local user = User.get_by_email(email) + if user==nil or user.password ~= password then +%> + document.querySelector('[failed]').textContent = 'Login failed'; +<% + return end - send_mail_async { - To = email - Subject = "Login" - body = `%> -Here is the link to login: - -<%= url %> - -Or login with your email and the password: <%=user.password%> -<% ` - } - Io.stdout = Http.response.text_writer() + user.login() + local spy = Http.request.parameters.spy ~= nil + if spy then + Http.response.set_cookie("spy","yes") + else + Http.response.remove_cookie("spy") + end + local with = Http.request.parameters.with + local location + if with == nil then + location = "/" + else + location = add_with("/chat") + end %> - location = '/login_sent.html'; + location = '<%=location%>'; <% end
