-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Link to an external profile when user accounts are managed by a single OIDC provider #21356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Link to an external profile when user accounts are managed by a single OIDC provider #21356
Conversation
…l/password when local accounts are disabled
…to external profile
… accounts are enabled
|
I remember that there was a config variable where the UI for changing this information was just disabled. I authenticate against LDAP and also don't want my users to change this. Just can't find the config at the moment. Edit: galaxy/lib/galaxy/config/sample/galaxy.yml.sample Line 1285 in 426fcd1
|
|
In our case, we want to make sure username and email can't be edited in Galaxy, since these will come from the OIDC provider, but we still want to allow for Galaxy-specific information like addresses and other integrations (e.g. Zenodo). |
|
@marius-mather At the backend working group meeting, the general consensus was that we should just repurpose |
| } | ||
| is_galaxy_app = trans.webapp.name == "galaxy" | ||
| if (trans.app.config.enable_account_interface and not trans.app.config.use_remote_user) or not is_galaxy_app: | ||
| allow_profile_edit = trans.app.config.enable_account_interface |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The old behaviour of not letting remote users edit profile should also be preserved I think, so we can just revert that last commit.
| allow_profile_edit = trans.app.config.enable_account_interface | |
| allow_profile_edit = ( | |
| trans.app.config.enable_account_interface | |
| and not trans.app.config.use_remote_user | |
| and not trans.app.config.disable_local_accounts | |
| ) |
I think what this PR was doing already was correct.
client/src/components/User/ExternalIdentities/ExternalIDHelper.ts
Outdated
Show resolved
Hide resolved
|
@ahmedhamidawan Would you also be able to do a quick once over please? I've tested it out and it all works as expected. A lot of this stuff is handled in legacy mako, so Marius has introduced a new vue component that handles just the OIDC profile info, which seems fine to me, but would appreciate your input. |
nuwang
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm! Thanks @marius-mather
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just these minor suggestions above. Otherwise, ran locally, code and the preference both look good! Thank you!
|
@ahmedhamidawan thanks, I've implemented your suggestion for the redirect logic |
When user accounts are managed through a single OIDC provider, we want to disable editing of username/email address/password within Galaxy and have them managed at the OIDC provider. This PR disables the username/email/password change UI within Galaxy and instead shows a read-only profile page with a link to the external OIDC profile.
Builds on #20287.
Changes:
profile_urloption to OIDC backend configScreenshots:
User preferences page with new profile widget added and "change password" removed (the existing "Manage Information" widget needs to be maintained for managing Galaxy-specific information like addresses and links to other external accounts)
New OIDC profile widget:
How to test the changes?
(Select all options that apply)
License