hypothesis / hypothesis/product-backlog

Enable users to change their username

Open
#355 6 comments 0 reactions 0 assignees View on GitHub
Design feature request user requested
Dominant language
No language data
Stars
122
Forks
7
PR merge metrics
No merged PRs in 30d

Description

### Problem you are trying to address with this feature

One of our most common support requests is from users wanting to change their username. In my inbox I count ~140 emails for "label:support change username" since Jan 2016. This doesn't count many more who may have found workarounds such as registering additional accounts or wanting to change their username but giving up.

Currently only site admins can change usernames via a form in the admin control panel, so we've built the functionality, but we don't expose it to users.

Users may want to change their username for a variety of reasons. These include:
- Usernames which reflect a real-life name that has changed
- Students or teachers signing up with a username which they later decide is inappropriate
- Users signing up with pseudonymous usernames (not reflecting their real name) and later wanting to change them to reflect their real name or vice versa.
- Users not liking the formatting they initially chose for their username (yes, we do get requests about this)

Some of these problems would be resolved by using the account's display name more widely, including in annotation cards in the client (see https://github.com/hypothesis/product-backlog/issues/323). However, as long as the service has usernames and these are chosen by the user to be somehow meaningful to them or others, I think there will be users wanting to change them.

### Research

I looked at username change support in a number of popular services which meet the following criteria:

- Accounts have a username
- The username is displayed prominently (in links, content posts etc.) so users are likely to care about it
- The service has a social dimension, and the username is important for that
- This is a mainstream service which has the burden of supporting a lot of users

**Twitter** - Users can change username. No apparent limits (https://www.quora.com/How-many-times-can-you-change-your-username-on-Twitter) . Links to old username does not redirect. https://support.twitter.com/articles/14609
**GitHub** - Users can change username. User is warned that not all links will be updated. https://help.github.com/articles/what-happens-when-i-change-my-username/
**Slack** - Users can change username. Limited to two changes per hour. https://get.slack.help/hc/en-us/articles/216360827-Change-your-username
**eBay** - Users can change username. Limited to one change every 30 days. Users are warned about consequences of change for existing customers trying to find the user. https://pages.ebay.ca/help/account/change-userid.html
**Reddit** - Username cannot be changed by users or admins. https://www.reddit.com/wiki/faq#wiki_i_want_to_change_my_username._do_i_have_to_start_a_new_account.3F

### Proposal

Allow users to change their own username via the Account Settings page. I propose that initially we do not place any limits on how frequently or how often the username can be changed, as we can add that at a later stage. I have implemented the design below in the [change-username-form](https://github.com/robertknight/h/tree/change-username-form) branch in my fork:

**Proposed design:**

This design follows the pattern used by the existing email change form:

username change form

editing username

username field hint

To this design above, I would probably add a footnote above the "Save" button which alerts the user to any consequences of changing their username which may be undesirable. For example, any links to `/users/{username}` for the old username will no longer work, assuming we do not set up redirects.

### Implementation notes

The framework for the forms with password confirmation already exists, as does the code for renaming users, so the above design was quite simple to implement. If we add any extra features or changes we'll need to factor that in accordingly.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.