feat: add linked accounts page#883
Conversation
|
Some outstanding questions / TODOs:
|
4f53316 to
7cc7756
Compare
gauthier-th
left a comment
There was a problem hiding this comment.
Just a few comments for now.
And you will add Emby once the PR with Jellyfin/Emby as different server types will be merged right?
Otherwise it's great I like it, good job!
Yep, that's the plan currently. Hopefully that PR will make emby a lot easier to integrate. |
7cc7756 to
9da4fbb
Compare
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged. |
9da4fbb to
4866427
Compare
|
Unified the two dropdown components and addressed a few other issues with the frontend. |
cffbbc4 to
72b28f4
Compare
|
Rebased on |
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged. |
That pr has now been merged |
|
Why this PR is still in draft any reason for this @michaelhthomas ? |
|
Hi @michaelhthomas, could you please rebase this on develop and make it ready for review if everything is ok? |
72b28f4 to
4a32662
Compare
|
@gauthier-th Rebased on develop. This should be ready for review now, but will probably need some testing. I've personally tested with Jellyfin, Plex, and Emby, but this could definitely use some independent testing. |
|
Is there a preview tag for testing on docker? |
I've just created one: |
gauthier-th
left a comment
There was a problem hiding this comment.
Here are a few more remarks after a detailed review. I still have to test it though.
Feel free to challenge me if you disagree on something.
|
This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged. |
Adds a shared component for plain dropdown menus, based on the headlessui Menu component. Updates the `ButtonWithDropdown` component to use the same inner components, ensuring that the only difference between the two components is the trigger button, and both use the same components for the actual dropdown menu.
Prevents the primary administrator from unlinking their media server account (which would break sync). Additionally, prevents users without a configured local email and password from unlinking their accounts, which would render them unable to log in.
033ccac to
1a88914
Compare
|
@all-contributors please add @michaelhthomas for code |
|
I've put up a pull request to add @michaelhthomas! 🎉 |
* feat(linked-accounts): create page and display linked media server accounts * feat(dropdown): add new shared Dropdown component Adds a shared component for plain dropdown menus, based on the headlessui Menu component. Updates the `ButtonWithDropdown` component to use the same inner components, ensuring that the only difference between the two components is the trigger button, and both use the same components for the actual dropdown menu. * refactor(modal): add support for configuring button props * feat(linked-accounts): add support for linking/unlinking jellyfin accounts * feat(linked-accounts): support linking/unlinking plex accounts * fix(linked-accounts): probibit unlinking accounts in certain cases Prevents the primary administrator from unlinking their media server account (which would break sync). Additionally, prevents users without a configured local email and password from unlinking their accounts, which would render them unable to log in. * feat(linked-accounts): support linking/unlinking emby accounts * style(dropdown): improve style class application * fix(server): improve error handling and API spec * style(usersettings): improve syntax & performance of user password checks * style(linkedaccounts): use applicationName in page description * fix(linkedaccounts): resolve typo * refactor(app): remove RequestError class
|
🎉 This PR is included in version 2.4.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
* feat(linked-accounts): create page and display linked media server accounts * feat(dropdown): add new shared Dropdown component Adds a shared component for plain dropdown menus, based on the headlessui Menu component. Updates the `ButtonWithDropdown` component to use the same inner components, ensuring that the only difference between the two components is the trigger button, and both use the same components for the actual dropdown menu. * refactor(modal): add support for configuring button props * feat(linked-accounts): add support for linking/unlinking jellyfin accounts * feat(linked-accounts): support linking/unlinking plex accounts * fix(linked-accounts): probibit unlinking accounts in certain cases Prevents the primary administrator from unlinking their media server account (which would break sync). Additionally, prevents users without a configured local email and password from unlinking their accounts, which would render them unable to log in. * feat(linked-accounts): support linking/unlinking emby accounts * style(dropdown): improve style class application * fix(server): improve error handling and API spec * style(usersettings): improve syntax & performance of user password checks * style(linkedaccounts): use applicationName in page description * fix(linkedaccounts): resolve typo * refactor(app): remove RequestError class
Description
Adds a "Linked Accounts" page to the user settings, allowing managing of linked media server (Plex, Jellyfin) accounts, including linking an account to your existing local user, or removing a linked account to become a local user. This page doesn't add much new functionality (except the ability to unlink accounts), but is intended to lay the groundwork for a new and improved implementation of #183 which allows the secure linking of OIDC accounts with existing local accounts.
Screenshot (if UI-related)
To-Dos
pnpm buildpnpm i18n:extractIssues Fixed or Closed