Mercurial Hosting > freedit
comparison src/change_email.html.luan @ 59:02d8876dc41d
improve change email
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 29 Nov 2022 18:45:22 -0700 |
parents | 31c895b73bd0 |
children |
comparison
equal
deleted
inserted
replaced
58:31c895b73bd0 | 59:02d8876dc41d |
---|---|
48 | 48 |
49 return function() | 49 return function() |
50 local user = User.current_required() | 50 local user = User.current_required() |
51 if user==nil then return end | 51 if user==nil then return end |
52 local email = Http.request.parameters.email | 52 local email = Http.request.parameters.email |
53 local password1 = Http.request.parameters.password1 | 53 local password = Http.request.parameters.password |
54 local password2 = Http.request.parameters.password2 | 54 if email == nil and password == nil then |
55 if email == nil then | |
56 page(function() | 55 page(function() |
57 %> | 56 %> |
58 <form> | 57 <form> |
59 <p>Your current email is <b><%=user.email%></b>.</p> | 58 <p>Your current email is <b><%=user.email%></b>.</p> |
60 <p> | 59 <p> |
63 </p> | 62 </p> |
64 <p><input type="submit"></p> | 63 <p><input type="submit"></p> |
65 </form> | 64 </form> |
66 <% | 65 <% |
67 end) | 66 end) |
68 elseif password1 == nil and password2 == nil then | 67 elseif email ~= nil and password == nil then |
69 run_in_transaction( function() | 68 run_in_transaction( function() |
70 user = user.reload() | 69 user = user.reload() |
71 user.hidden_password_1 = User.new_password() | 70 user.hidden_password = User.new_password() |
71 user.new_email = nil | |
72 user.save() | 72 user.save() |
73 end ) | 73 end ) |
74 local result = call_mail_api( "change_email_1", { | 74 local result = call_mail_api( "change_email_1", { |
75 base_url = base_url() | 75 base_url = base_url() |
76 from = forum_title.." <support@freedit.org>" | 76 from = forum_title.." <support@freedit.org>" |
77 to = user.email | 77 to = user.email |
78 email = email | 78 email = email |
79 password = user.hidden_password_1 | 79 password = user.hidden_password |
80 } ) | 80 } ) |
81 result.okay or error(result.error) | 81 result.okay or error(result.error) |
82 page(function() | 82 page(function() |
83 %> | 83 %> |
84 <p>We have sent an email to your current email address. Click on the link in that email to change your email.</p> | 84 <p>We have sent an email to your current email address. Click on the link in that email to change your email.</p> |
85 <% | 85 <% |
86 end) | 86 end) |
87 elseif password1 ~= nil then | 87 elseif email ~= nil and password ~= nil then |
88 if password1 ~= user.hidden_password_1 then | 88 if password ~= user.hidden_password then |
89 invalid() | 89 invalid() |
90 return | 90 return |
91 end | 91 end |
92 run_in_transaction( function() | 92 run_in_transaction( function() |
93 user = user.reload() | 93 user = user.reload() |
94 user.hidden_password_1 = nil | 94 user.hidden_password = User.new_password() |
95 user.hidden_password_2 = User.new_password() | 95 user.new_email = email |
96 user.save() | 96 user.save() |
97 end ) | 97 end ) |
98 local result = call_mail_api( "change_email_2", { | 98 local result = call_mail_api( "change_email_2", { |
99 base_url = base_url() | 99 base_url = base_url() |
100 from = forum_title.." <support@freedit.org>" | 100 from = forum_title.." <support@freedit.org>" |
101 email = email | 101 to = email |
102 password = user.hidden_password_2 | 102 password = user.hidden_password |
103 } ) | 103 } ) |
104 result.okay or error(result.error) | 104 result.okay or error(result.error) |
105 page(function() | 105 page(function() |
106 %> | 106 %> |
107 <p>We have sent an email to <b><%=email%></b>. Click on the link in that email to complete the change.</p> | 107 <p>We have sent an email to <b><%=email%></b>. Click on the link in that email to complete the change.</p> |
108 <% | 108 <% |
109 end) | 109 end) |
110 elseif password2 ~= nil then | 110 elseif email == nil and password ~= nil then |
111 if password2 ~= user.hidden_password_2 then | 111 if password ~= user.hidden_password then |
112 invalid() | 112 invalid() |
113 return | 113 return |
114 end | 114 end |
115 run_in_transaction( function() | 115 run_in_transaction( function() |
116 user = user.reload() | 116 user = user.reload() |
117 user.email = email | 117 user.email = user.new_email or error() |
118 user.hidden_password_2 = nil | 118 user.hidden_password = nil |
119 user.new_email = nil | |
119 user.save() | 120 user.save() |
120 end ) | 121 end ) |
121 page(function() | 122 page(function() |
122 %> | 123 %> |
123 <p>Your email has been change to <b><%=user.email%></b>.</p> | 124 <p>Your email has been change to <b><%=user.email%></b>.</p> |