If the password takes the API token, what do we do for identity?
Do we want to be able to just pass --token and have the API on the
Review Board side translate that into the user account? This would
require uniqueness guarantees for the API, but that's pretty simply solved.
The other option is to require the use of the OpenID URI as the username
and the token value as its password. This is probably the simplest
method to implement, since it won't require any changes to the client at
all. At this point, though, I'm not sure whether we're any better off
than just instructing the user to set a ReviewBoard password after the
first registration. So maybe that's the best choice (and give them the
option to have the password generated for them, since they wouldn't need
to use it for logging in, just for the post-review tool.
So here's my thought on this procedure:
User logs in the very first time using OpenID (I'll use the Fedora
Account System aka FAS as the example).
The redirect to FAS occurs, the user logs in there in an appropriate
manner, and then elects to grant permission for their user information
to go to ReviewBoard.
FAS OpenID then redirects back to ReviewBoard's registration page, with
any eligible fields populated by the OpenID data. The user is prompted
to enter a password or (the new part) click an Ajax button that unmasks
the password field and creates a new random password (and adds a note
that the user should record this password for later use with RBtools or
other Web API client tools).
User logs in and can use ReviewBoard.
User logs out, then logs in with OpenID again. This time, the redirect
back from FAS should go directly to the dashboard. (The user should not
need to enter the password for access to the Web UI at this point).
Ok, those are my thoughts: commencing poking holes in it in 5... 4...