Login/Register UX upgrade
What does this MR do?
This merge request makes several upgrades to the existing login/register workflow. The most prominent changes are:
- Transitioning to tabbing between login/registration screens
- Introducing front-end validation with field-specific validation errors
- Async username availability checking for new users
There are also a number of stylistic updates to authentication/session-related forms that use .login-box
styling (see https://gitlab.com/gitlab-org/gitlab-ce/issues/13937).
Are there points in the code the reviewer needs to double check?
I'm not sure what to do with current error messages from Rails (devise_error_messages
) in our UI. I read [a bit on this] (http://guides.rubyonrails.org/v2.3.11/activerecord_validations_callbacks.html#displaying-validation-errors-in-the-view), but I'd especially appreciate feedback on this.
Notes:
- Async username validation was initially written/reviewed here (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4773) although a fair number of changes have been made on top of it.
- The project description will need to be updated by GitLab project admins.
Why was this MR needed?
Improves Login/Registration UX.
Screenshots (if relevant)
Sign in preview: http://localhost:3000/admin/appearance then change something, http://localhost:3000/admin/appearance/preview
Resend Confirmation: http://localhost:3000/users/confirmation/new
Reset Password Request: http://localhost:3000/users/password/new
Change your password (new password and confirm): Must submit Reset Password Requests and follow Reset Password Link in http://localhost:3000/rails/letter_opener/ Email
Two Factor Auth: Enable 2-factor auth and then sign in
Does this MR meet the acceptance criteria?
Omniauth: (got its own box)
-
CHANGELOG entry added -
Documentation created/updated -
API support added - Tests
-
Added for this feature/bug -
All builds are passing
-
-
Conform by the merge request performance guides -
Conform by the style guides -
Branch has no merge conflicts with master
(if you do - rebase it please) -
Squashed related commits together
What are the relevant issue numbers?
https://gitlab.com/gitlab-org/gitlab-ce/issues/13937
TODO:
-
Write tests for GlFieldErrors -
Add screenshots of all screens affected by these changes -
Verify that UX completely matches design with @cperessini. -
Visually test omniauth buttons, ensure styling isn't broken. -
Get tests passing.
cc: @jschatz1