Add support for changing users' email addresses #734

Closed
timabbott opened this Issue Apr 29, 2016 · 7 comments

Projects

None yet

5 participants

@timabbott
Member

Currently, there's no UI for changing users' email addresses. While there is a management command, it's a messy process because the Zulip caching system is not designed to handle email address changes well. So most of the work for this task will be structural work on the caching system and how certain data is transmitted, and then of course there will be a bit of work on the UI as well.

@timabbott timabbott added this to the 2016 roadmap milestone Apr 29, 2016
@gregmccoy
Contributor

I'll try doing this

@moebiuseye

Any update on this?

@timabbott
Member

I think @gregmccoy didn't end up working on this much. @moebiuseye this process is terrible but I should document the fact that it is possible to change a user's email using roughly the following process:

$ ./manage.py change_user_email <old email> <new email>
$ ./scripts/setup/flush-memcached
$ ./scripts/restart-server
# then either get all users to reload their browsers or wait for the server restart to trigger those reloads (at most 30m; usually more like 5m).

(aka one has to flush memcached, do a full server restart). I realize this is totally unacceptable and one of the weaker points of the Zulip setup right now. I have a technical plan for how to do this, but haven't had time to work on it; here are a few notes on the things that need to happen:

  • The local in-process display_recipient cache needs to be changed to be flushed after every request (it's intended to just help optimize the perf of rendering 1K messages in a single request; we can use memcached for cross-request issues). That would fix the need to restart the server.
  • Write code for changing email addresses to flush the user's old email address from memcached; this would fix the need for the memcached flush.
  • Write code to trigger browsers to update the frontend state when a user changes their email address. This would fix the need to wait for users to reload their browsers.
  • Fix the logic around how avatars work to avoid losing the user's avatar (if user-uploaded).

Most of this is fairly concrete, so I'm tagging this issue as accessible for folks to contribute at this point.

@timabbott timabbott modified the milestone: Zulip roadmap, Old roadmap Nov 18, 2016
@umairwaheed
Collaborator

Working on this.

@umairwaheed
Collaborator

(Only the confirmation email flow part)

@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 12, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
9e89312
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 12, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
dacf14f
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 16, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
33bcd77
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 16, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
e9bafbc
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 17, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
4985cda
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 17, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
e6629db
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 17, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
d3add60
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 17, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
64e5971
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 17, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
561810b
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 17, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
799c676
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 18, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
0572a4b
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 18, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
a4a71dd
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 18, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Partially fixes #734.
c527e6b
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 20, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
9d0fa67
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 20, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
7478981
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 23, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
52783fa
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 23, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
8694e2f
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Jan 23, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
0047082
@showell showell added a commit to showell/zulip that referenced this issue Jan 31, 2017
@umairwaheed @showell umairwaheed + showell change-email: Implement confirmation flow.
Fixes #734.
503082d
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 1, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
8bf5d78
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 6, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
6f1dfe7
@showell showell added a commit to showell/zulip that referenced this issue Feb 7, 2017
@umairwaheed @showell umairwaheed + showell change-email: Implement confirmation flow.
Fixes #734.
bbc4df9
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 8, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
035c78e
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 13, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
f2d594c
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 13, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
91d6bbd
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 13, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
9597102
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 14, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
7ae17ce
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 21, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
0775e9c
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 22, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
adc9f2c
@showell
Contributor
showell commented Feb 22, 2017

@timabbott @umairwaheed Once the new email-related changes hit master, we may want to close this ticket and open a new ticket that refers specifically to the admin component of this.

@timabbott
Member

Yeah, that makes sense to me.

@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 23, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
078d899
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 23, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
aa00366
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 23, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
94c66b0
@umairwaheed umairwaheed added a commit to umairwaheed/zulip that referenced this issue Feb 23, 2017
@umairwaheed umairwaheed change-email: Implement confirmation flow.
Fixes #734.
be9ed63
@timabbott timabbott added a commit that closed this issue Feb 23, 2017
@umairwaheed @timabbott umairwaheed + timabbott change-email: Implement confirmation flow.
This adds to Zulip support for a user changing their own email
address.

It's backed by a huge amount of work by Steve Howell on making email
changes actually work from a UI perspective.

Fixes #734.
5bf83f9
@timabbott timabbott closed this in 5bf83f9 Feb 23, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment