Content
View differences
Updated by Pavel Balashou 12 months ago
**As** a user
**I want OpenProject to** preserve my authentication provider identity when I log in though another provider
**so that** I see which external accounts are connected to my OpenProject account
**Acceptance criteria**
* User can see which external accounts are connected to its OpenProject account.
**Technical notes**
* Now:
* `users.identity_url` column is used to store `#{auth_provider_slug}:#{auth_provier_user_id}`. And it gets overwritten every time user logs in with another provider.
* Should be:
* `users.identity_url` data moved to a separate table(e.g. `user_auth_provider_links(id, user_id, auth_provider_id, external_id)`
* when user logs in with authentication provider
* then application looks for existing link
* uses it if there is one
* creates new one if there is none
**Permissions and visibility considerations**
* API `users.identity_url`
<br>
**Translation considerations**
* should be marked as deprecated
* on update should change existing link if possible and create a new one otherwise.
* should return last updated link
<br>
**Out of scope**
* <br>
**I want OpenProject to** preserve my authentication provider identity when I log in though another provider
**so that** I see which external accounts are connected to my OpenProject account
**Acceptance criteria**
* User can see which external accounts are connected to its OpenProject account.
**Technical notes**
* Now:
* `users.identity_url` column is used to store `#{auth_provider_slug}:#{auth_provier_user_id}`. And it gets overwritten every time user logs in with another provider.
* Should be:
* `users.identity_url` data moved to a separate table(e.g. `user_auth_provider_links(id, user_id, auth_provider_id, external_id)`
* when user logs in with authentication provider
* then application looks for existing link
* uses it if there is one
* creates new one if there is none
**Permissions and visibility considerations**
**Translation considerations**
* on update should change existing link if possible and create a new one otherwise.
* should return last updated link
* <br>