Trying to sign into an instance with the GitLab.com account gives unclear error
Summary
A GitLab instance can allow authenticating with external providers, including Google, Github, or GitLab.com: https://docs.gitlab.com/ee/integration/omniauth.html
When these are disabled, there are two UX problems:
-
You can still see the providers' buttons on the Sign in page.
-
Clicking GitLab.com results in an error message built from omniauth_callbacks_controller.rb. The repetition of "GitLab" can be confusing to users (example), not knowing which instance it refers to:
Signing in using your GitLab.com account without a pre-existing GitLab account is not allowed. Create a GitLab account first, and then connect it to your GitLab.com account.
With other providers, it's clear:
Signing in using your Github account without a pre-existing GitLab account is not allowed. Create a GitLab account first, and then connect it to your Github account.
Steps to reproduce
- Go to the sign-in page of a GitLab instance with external credential providers disabled, for example https://gitlab.gnome.org/users/sign_up.
- Select GitLab.com
What is the current bug behavior?
The repetition of "GitLab" in the error message can be confusing to users (example), not knowing which instance it refers to.
What is the expected correct behavior?
It should be clear from the message which instances do "GitLab" and "GitLab.com" refer to.
Relevant logs and/or screenshots
Examples from the GNOME project's GitLab:
Possible fixes
MVC 1: Edit strings in https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/controllers/omniauth_callbacks_controller.rb#L199-205 to be clearer in case of using GitLab.com but that also work with other providers:
- "Signing in using your
%{label}
account without a pre-existing GitLab account is not allowed." - "Create a GitLab account first, and then connect it to your
%{label}
account."
Mentions in the following docs should also be updated to match:
- https://docs.gitlab.com/ee/integration/omniauth.html#configure-common-settings
- Error text in https://docs.gitlab.com/ee/integration/github.html#signing-in-using-your-github-account-without-a-pre-existing-gitlab-account-is-not-allowed
- Add similar troubleshooting topic to https://docs.gitlab.com/ee/integration/gitlab.html
MVC 2: Don't show the providers' buttons from the sign up page if account creation with these providers is disabled.
Before | After |
---|---|
Skipped sections
Output of checks
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)