* fix(jellyfin): use the same deviceId for admins
This PR will make Jellyseerr use the same deviceId for the admin user everytime he logins to
Jellyfin/Emby. The previous behavior with different deviceId was creating new entries on the media
at every request.
* fix: remove useless check
This update modifies the user settings endpoint so that, when validating email uniqueness, the query
excludes the current user’s own record (using id: Not(user.id))
* refactor: rename some remaining Overseerr occurrences
This PR renames some remaining occurrences of Overseerr to Jellyseerr. This includes the OpenAPI
specification, log file names and some variables and console messages.
* fix(i18n): add missing translation
* fix: add email requirement for local users
Because of a misunderstanding, and the requirement to have a mandatory email for local users was
removed, when it shouldn't have been.
re #900fix#1367
* fix: add missing check for Emby
* 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
* feat: add separate setting for streaming region
Currently, the "Currently Streaming On" information is based on the Discover Region setting. This PR
adds a new setting to specify which region should be used to display the streaming region.
re #890
* fix: add missing newline
* fix: rename migration function
When the email is modified in the user settings and it is already taken by someone else, a generic
message saying that something wrong happened, without saying that it is because the email is already
taken by another user. This PR adds this error message for the email.
* fix: remove email requirement for the user, and use the username if no email provided
* fix: update translations
* fix: remove useless console.log
* test: fix user list test
* fix: disallow Plex users from changing their email
* fix(api): save user email on the first try
fix#227
* fix(api): remove todo
* fix(logging): handle media server connection refused error/toast (#748)
* fix(logging): handle media server connection refused error/toast
Properly log as connection refused if the jellyfin/emby server is unreachable. Previously it used to
throw a credentials error which lead to a lot of confusion
* refactor(i8n): extract translation keys
* refactor(auth): error message for a more consistent format
* refactor(auth/errors): use custom error types and error codes instead of abusing error messages
* refactor(i8n): replace connection refused translation key with invalidurl
* fix(error): combine auth and api error class into a single one called network error
* fix(error): use the new network error and network error codes in auth/api
* refactor(error): rename NetworkError to ApiError
---------
Co-authored-by: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
* feat(notif): add Pushbullet and Pushover agents to user notification settings
* docs(notif): add "hint" about user notifications to Pushbullet and Pushover pages
* fix: regenerate DB migration
* feat: allow users to select notification types
* fix(ui): display personal notification types before management types
* fix: update allRequestsAutoApproved check to account for new REQUEST_MOVIE & REQUEST_TV perms
* fix(ui): do not display Discord notif type selector if user not eligible for any types
* refactor(ui): remove unnecessary 'enabled' checkboxes from user notif settings
* fix(ui): correct checkbox behavior
* fix: add missing return type on hasNotificationType
* refactor: remove unused isValid prop in NotificationsWebPush
* fix(ui): use SensitiveInput for users' public PGP keys
* fix(ui): add missing tip/hint for email encryption setting
* refactor(svg): use the new Discord logo
* revert(api): undo breaking change removing discordEnabled from UserSettingsNotificationsResponse
* fix(lang): update notification type descriptions for clarity
* fix(telegram): do not send users notifications of their own auto-approved requests
* refactor(ui): add tabs to user notification settings
* feat(notif): allow users to enable/disable specific agents
* fix(ui): only enforce required fields when agent is enabled
* fix(ui): hide unavailable notification agents
* feat(notif): mention admin users for admin Discord notifications
* fix(ui): modify styling of PGP key textareas to suit expected input
* fix(notif): mention all admins when there are multiple and fix rebase error
* fix: add missing form values, and fix Yup validation
* refactor: reduce repeated logic/code in email notif agent
* refactor: move 'Notification Types' label into NotificationTypeSelector component
* fix(email): correct inconsistencies in email template formatting
* refactor: use bitfields for storing user-enabled notif agent types
* feat: improve notification agent logging
* fix(ui): mark string fields as nullable so empty values are not type errors
* fix: add validation for PGP-related inputs
* fix: correctly fetch user in user settings & log mentioned IDs for Discord notifs
* fix(ui): fix mobile nav dropdown text & add hover effect to button-style tabs
* fix(notif): process admin email notifications asynchronously
* fix(logging): log name of notification type instead of its enum value
* fix: mark required fields and pass all user settings values to API
* fix(frontend): call mutate after changing email/Discord/Telegram global notif settings
* refactor: get global notif settings from relevant API endpoints instead of adding to public settings
* fix(notif): fall back to email notifications being enabled (default) if user settings do not exist
* fix(notif): do not set notifyUser for MEDIA_PENDING or MEDIA_AUTO_APPROVED
* fix: expose notif enabled settings in user notif endpoints & remove global enable notif setting
* fix(notif): remove unnecessary allowed_mentions object from Discord payload
* fix(notif): use form values for email test notification
* fix: make suggested changes and regenerate DB migration
* fix: loosen validation of PGP keys
* fix: fix user profile settings routes
* fix: remove route guard from profile pages
* feat(quotas): rebased
* feat: add getQuota() method to User entity
* feat(ui): add default quota setting options
* feat: user quota settings
* feat: quota display in request modals
* fix: only show user quotas on own profile or with manage users permission
* feat: add request progress circles to profile page
* feat: add migration
* fix: add missing restricted field to api schema
* fix: dont show auto approve message for movie request when restricted
* fix(lang): change enable checkbox langauge to "enable override"
Co-authored-by: Jakob Ankarhem <jakob.ankarhem@outlook.com>
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
* fix: do not allow editing of user settings under certain conditions
* feat(lang): generate translation keys for new strings
* refactor: modify owner check for clarity
* fix(ui): hide buttons where appropriate and add missing translation string