Commit Graph

80 Commits

Author SHA1 Message Date
Matthieu B
59e2cb8199 chore: merge main into ldap branch, resolve conflicts 2026-03-29 16:28:20 +02:00
Matthieu B
9f3d66e4fe fix: preserve per-server expiry dates in user grouping (#1163)
Stop mutating primary.expires in _group_users_for_display(); store the
computed earliest date in primary.earliest_expires instead so each
account's individual expires value remains intact for the mixed-expiry
detection logic in user_card.html.
2026-03-29 16:10:19 +02:00
Matthieu B
e992873e4d Merge origin/main into ldap branch
Resolve conflicts in auth/routes.py (incorporate media_server_url),
login.html (combine admin page text + LDAP error guard), and uv.lock.
2026-03-29 15:49:50 +02:00
Matthieu B
0902f4ba93 feat(invites): streamline invite expiry handling and update UI for expiration display 2026-02-25 02:02:08 +01:00
Matthieu B
dae8372397 style: fix djlint formatting in invite templates
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:34:43 +01:00
Matthieu B
ad7f07319d feat(invites): implement per-server expiry handling and update invite modal closes #1138 2026-02-23 12:33:29 +01:00
Erwan Leboucher
5bb51e0cf1 feat(ldap): add LDAP authentication and invitation integration 2025-12-27 17:14:17 +01:00
Matthieu B
2c58f1daef fix: update server name tag rendering in user accounts 2025-12-09 15:28:59 +01:00
Matthieu B
3d25506745 style: improve HTML formatting and indentation across multiple templates 2025-12-09 14:28:01 +01:00
Matthieu B
c4bafddc71 Update app/templates/tables/user_card.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-04 13:01:41 +01:00
Simon
ba7fdce051 fix: reuses generic server type tag 2025-11-21 01:19:34 +01:00
Simon
1f748c37b2 feat: improve the password reset functionality for jellyfin 2025-11-21 00:49:05 +01:00
Simon
fadbf9df35 feat: add UI password reset feature 2025-11-21 00:17:27 +01:00
Matthieu B
31d1bba041 fix: Improve date formatting in invite cards for consistency and clarity closes #947 2025-10-27 12:54:01 +01:00
Matthieu B
5feaf51337 Enhance wizard step management and UI
- Updated the sub-navigation for the wizard to conditionally display step creation options based on the default state and available bundles.
- Improved the bundles page layout by categorizing steps into pre-invite, post-invite, and additional categories, enhancing user experience.
- Added orphaned step handling to allow users to remove steps that no longer have an associated entry.
- Displayed the associated wizard bundle name in the invite card if applicable.
- Adjusted JavaScript routing for bundle steps in the wizard.
- Modified the development script to set the NODE_ENV to development when installing npm dependencies, ensuring proper handling of devDependencies.
- Updated the subproject reference in the plus directory to indicate a dirty state.
2025-10-26 12:26:26 +01:00
Matthieu B
47f57e0ca7 refactor: update library grouping by server ID and adjust template rendering for invitations closes #938 2025-10-22 12:19:53 +02:00
Matthieu B
4f4a41a68a fix: lint 2025-10-20 12:38:18 +02:00
Matthieu B
820799b5c6 fix: Update package-lock.json and invite_card.html for improved styling and functionality 2025-10-19 17:14:10 +02:00
Mully
ed9ce1a63d fix: server tag overflow
+ Applied max-width of 80% to the Username/Nickname/Avatar div to give server tag enough space

- Removed blank/unused template new-users.html
2025-10-10 04:50:18 -04:00
Matthieu B
187b8758c1 Refactor wizard templates and JavaScript controller
- Updated title block in frame.html for clarity.
- Improved localization for the "Next" button in steps.html.
- Refactored the WizardController JavaScript for better readability and organization.
- Added detailed comments to the wizard architecture for future reference.
- Enhanced button visibility and state management based on interaction requirements.
- Implemented swipe gesture handling for mobile navigation.
- Updated subproject commit to indicate a dirty state.
2025-10-07 14:01:16 +02:00
Matthieu B
d1ed08d9c2 Add .djlintrc configuration file for Jinja linting 2025-10-07 11:04:58 +02:00
Matthieu B
e2f559b403 fix: update user card styles for improved accessibility and consistency 2025-09-27 18:10:21 +02:00
Matthieu B
0ae281e9fe feat: enhance user card layout and selection functionality 2025-09-27 17:44:19 +02:00
Matthieu B
f295a345a1 feat: add user disable functionality and update user management settings
- Introduced `is_disabled` attribute to the User model.
- Added `expiry_action` selection in the GeneralSettingsForm for user management.
- Implemented `disable_user` methods for various media clients (Audiobookshelf, Jellyfin, Kavita, etc.) to handle user disabling.
- Updated `check_expiring` task to process expired users based on the new settings.
- Enhanced user interface to reflect disabled status in user cards.
- Added migration for the new `is_disabled` column in the user table.
2025-09-27 12:19:48 +02:00
Matthieu B
9cf07afbea fix: bug in using delete modal 2025-09-06 10:23:36 +02:00
Matthieu B
7d9a4f7594 fix: display tweaks 2025-09-05 13:12:33 +02:00
Matthieu B
2dee2aa7af feat: add notes to users 2025-09-05 11:52:32 +02:00
Matthieu B
80b8cf3afe fix: user page blank after certain operations
feat: deleting user from specific server
fix: user linking misbehaving
2025-09-05 11:40:51 +02:00
Matthieu B
c11e5d5326 Enhance user display logic in invite and user modals to show usernames for multiple users and improve server type tagging in user cards 2025-08-14 15:53:25 +02:00
Matthieu B
368aeaddeb fix invite table bugs 2025-08-14 15:38:42 +02:00
Matthieu B
b83a25c49a Enhance user management by adding invitation date sorting and display in user tables 2025-08-13 14:14:17 +02:00
Matthieu B
b6e9376d9d fix layout deleted users 2025-08-13 14:02:53 +02:00
Matthieu B
9ab4a199ad Add user expiry management features and enhance user interface for expiring and expired users fixes #755 2025-08-13 12:26:58 +02:00
Matthieu B
d4dd57ee1e feat: Add comprehensive connections and expiry management system
- Add new connections management system with MediaConnection and DiscordWebhook models
- Implement dynamic server configuration with URL field support
- Add expiry management system with automatic user cleanup
- Create wizard preset system for streamlined server setup
- Add dedicated connections interface in settings with CRUD operations
- Integrate expiry functionality with connection management
- Add proper form validation and error handling
- Update templates and routes for new connection workflow

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 22:21:10 +02:00
Matthieu B
d57ea4e359 feat: Introduce standardized user details handling across media clients
- Added `MediaUserDetails` and `UserLibraryAccess` data classes for consistent user information representation.
- Implemented `get_user_details` method in various media clients (Emby, Jellyfin, Kavita, Komga, Plex, Romm) to return standardized user details.
- Updated `get_user` methods in media clients to maintain backward compatibility while leveraging the new user details structure.
- Enhanced user listing and synchronization processes to include policy attributes and library access information.
- Improved user interface templates to display user policies and account information more effectively.
- Added human-readable date formatting for expiration and creation dates in user-related templates.
2025-07-25 16:37:32 +02:00
Matthieu B
3907cfefe5 feat: add cinema poster fetching functionality for enhanced user experience 2025-07-24 18:29:25 +02:00
Matthieu B
c7bad49599 fix: Add fallback clipboard support for HTTP contexts
- Add copyToClipboard() utility function in base.html with fallback support
- Replace direct navigator.clipboard.writeText() calls with new utility
- Support both HTTPS (modern clipboard API) and HTTP contexts (document.execCommand fallback)
- Add manual copy alert as last resort for complete compatibility
- Update all clipboard usage locations (invite modal, admin invites, invite cards)

Fixes #711

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 16:37:21 +02:00
Matthieu B
56ca505dc9 feat: Implement passkey management for admin accounts
- Added routes for resetting and viewing passkeys for admin accounts.
- Integrated passkey checks during login to enforce 2FA when applicable.
- Updated login template to handle passkey authentication and display relevant messages.
- Created a recovery tool for password resets and passkey management in case of lockouts.
- Enhanced admin management UI to include passkey options.
- Documented recovery tool usage and scenarios for admin access recovery.
2025-07-18 15:47:02 +02:00
Matthieu B
5bde1495c0 cleanup 2025-07-17 16:05:36 +02:00
Matthieu B
d8cb5193c3 invitation workflow overall for more stability 2025-07-17 15:13:00 +02:00
Matthieu B
aadf88738c feat: add server_name_tag filter and enhance invite table rendering
- Introduced `server_name_tag` filter to generate styled server name spans based on server type.
- Enhanced the `invite_table` view to support improved rendering of invitation cards, including relative expiry strings and server-specific details.
- Updated the invite card template for better layout and user experience, including a masonry layout for dynamic card positioning.
- Added helper functions for relative time formatting and improved server library display logic.
2025-07-16 19:50:05 +02:00
Matthieu B
be1bdb83f1 added translation strings 2025-07-11 15:29:52 +02:00
Matthieu B
7d98acaa90 Revert "Resolve merge conflicts in media clients"
This reverts commit 2af03d8ddd, reversing
changes made to 1775e04edf.
2025-07-10 19:47:11 +02:00
Matthieu B
2af03d8ddd Resolve merge conflicts in media clients 2025-07-10 19:42:51 +02:00
Matthieu B
8e122668ca remove server type from invite card 2025-07-10 14:19:29 +02:00
Matthieu B
f2531e04a4 fix ui 2025-07-09 19:03:07 +02:00
Matthieu B
f5b70abef5 matching tags 2025-07-09 16:37:02 +02:00
Matthieu B
c86cc75e32 Added Multi-Admin Accounts 2025-07-08 19:14:07 +02:00
Matthieu B
5d29465ab2 removed plainstring passwords closes #673 2025-07-08 18:25:15 +02:00
Matthieu B
2ca6c22764 feat: Add multi-server invite support with Jellyfin integration
- Add support for inviting users to multiple media servers simultaneously
- Implement Jellyfin-specific invite options (Allow Downloads, Allow Live TV)
- Add server type detection and conditional UI rendering in invite form
- Create new database migration for Jellyfin server options
- Update invite service to handle multi-server invitations
- Add server-specific validation and error handling
- Enhance user management with server-specific permissions
- Update templates to show server-specific invite options
- Add middleware support for multi-server authentication
- Improve settings forms with server type-specific fields

Breaking changes:
- Invite form now requires server selection
- User permissions are now server-specific
- Database schema updated for multi-server support
2025-07-03 16:18:50 +02:00