There are a few suggestions below that may be implemented one-by-one.
There are two scenarios:
There is also the necessary eventuality of registration:
Unique /login screen proposes the following (perhaps by DIVs of which only one is visible at any time):
Offer a third choice "Both Redmine Login / Password, and OpenID."
On the screen is shown:
On the screen is shown the OpenID Selector, but nothing else.
A link can render visible a field for the login.
A link can render visible a field for the email.
If the login or the email (priority to email) are entered, then this OpenID may be associated to this existing account. Password or email verification only on successful OpenID passage. If account does not exist by email or by login, then login and/or email are pre-populated in /account/registration if registration is activated.
The current screen stands, but if the login / password are correct, the the OpenID URL is reinitialized.
Should the email be taken, a registration screen only asks for the password associated with the username of that email to reinitialize the URL. Now the person may not, in that case, remember his or her password. The "email already used" screen should send an email allowing the continuation of the modification of the link (or at least proposition of existing password reminder).
Change of OpenID
User with correct OpenID URL logs in.
User with correct Login / Password logs in.
User with new OpenID URL logs in and is sent to register screen without existing account.
User with new OpenID URL logs in and is sent to register screen with existing account
(variant: email taken from OpenID).
I sure do appreciate all the time and effort that was put into creating this suggestions. Unfortunately, I currently do not have time to carry out this
I will try to help to anyone that can spend some time on this