users: move emails to separate table.

* Move emails from users table to email_addresses table.
* Validate that addresses are formatted correctly and are unique across
  users. Existing invalid emails are grandfathered in.
* Add is_verified flag (the address has been confirmed by the user).
* Add is_deliverable flag (an undeliverable address is an address that bounces).
* Normalize addresses to prevent registering multiple accounts with the
  same email address (using tricks like Gmail's plus addressing).
This commit is contained in:
evazion
2020-03-10 21:36:16 -05:00
parent 41304d6add
commit 258f4a8b95
22 changed files with 285 additions and 36 deletions

View File

@@ -25,7 +25,13 @@
<div class="input">
<label>Email</label>
<p>
<%= CurrentUser.user.email.presence || "<em>blank</em>".html_safe %> <%= link_to "Change your email", new_maintenance_user_email_change_path %>
<% if @user.email_address.present? %>
<%= @user.email_address.address %>
<% else %>
<em>blank</em>
<% end %>
- <%= link_to "Change your email", new_maintenance_user_email_change_path %>
</p>
</div>