annotate src/login.js.luan @ 123:50f611bbfa19 default tip

minor
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 10 Dec 2025 20:34:30 -0700
parents e2deb5236f26
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
44
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 local Luan = require "luan:Luan.luan"
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local error = Luan.error
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local Io = require "luan:Io.luan"
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 local Http = require "luan:http/Http.luan"
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 local User = require "site:/lib/User.luan"
117
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
6 local Shared = require "site:/lib/Shared.luan"
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
7 local add_with = Shared.add_with or error()
44
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 return function()
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11 local email = Http.request.parameters.email or error()
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 local password = Http.request.parameters.password or error()
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13 Io.stdout = Http.response.text_writer()
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 local user = User.get_by_email(email)
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 if user==nil or user.password ~= password then
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 %>
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 document.querySelector('[failed]').textContent = 'Login failed';
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 <%
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 return
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 end
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 user.login()
117
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
22 local spy = Http.request.parameters.spy ~= nil
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
23 if spy then
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
24 Http.response.set_cookie("spy","yes")
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
25 else
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
26 Http.response.remove_cookie("spy")
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
27 end
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
28 local with = Http.request.parameters.with
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
29 local location
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
30 if with == nil then
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
31 location = "/"
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
32 else
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
33 location = add_with("/chat")
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
34 end
44
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 %>
117
e2deb5236f26 better login
Franklin Schmidt <fschmidt@gmail.com>
parents: 44
diff changeset
36 location = '<%=location%>';
44
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 <%
1aa50739475a add manual login
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 end