0
|
1 local Luan = require "luan:Luan.luan"
|
|
2 local error = Luan.error
|
|
3 local Io = require "luan:Io.luan"
|
|
4 local Http = require "luan:http/Http.luan"
|
|
5 local User = require "site:/lib/User.luan"
|
|
6 local Shared = require "site:/lib/Shared.luan"
|
|
7 local js_error = Shared.js_error or error()
|
|
8 local Db = require "site:/lib/Db.luan"
|
|
9 local run_in_transaction = Db.run_in_transaction or error()
|
|
10
|
|
11
|
|
12 return function()
|
|
13 local user = User.current() or error()
|
|
14 local code = Http.request.parameters.code or error()
|
|
15 local err_fld, err_msg = run_in_transaction( function()
|
|
16 user = user.reload()
|
|
17 if user.code ~= code then
|
|
18 return "code", "Incorrect code"
|
|
19 end
|
|
20 user.code = nil
|
|
21 user.email = user.new_email or error()
|
|
22 user.new_email = nil
|
|
23 user.save()
|
|
24 end )
|
|
25 Io.stdout = Http.response.text_writer()
|
|
26 if err_fld ~= nil then
|
|
27 js_error(err_fld,err_msg)
|
|
28 return
|
|
29 end
|
|
30 user.login()
|
|
31 %>
|
|
32 clearErrors(context.form);
|
|
33 location = '/change_email2.html';
|
|
34 <%
|
|
35 end
|