Commit Graph

42 Commits

Author SHA1 Message Date
Erwan Leboucher
5bb51e0cf1 feat(ldap): add LDAP authentication and invitation integration 2025-12-27 17:14:17 +01:00
Matthieu B
3a294a02f0 feat: enhance username validation and trimming across forms 2025-11-04 19:02:56 +01:00
Matthieu B
9b5aa0972a refactor: remove slop from media and new linting rules 2025-10-23 18:33:50 +02:00
engels74
d0df4c6d5d feat: wizard step refactor into pre/post wizard steps
Changes:
  - Pre/post invitation wizard phases
  - Phase-aware routing (/pre-wizard/*, /post-wizard/*)
  - Phase indicator badges (visual categorization)
  - Dynamic completion button behavior
  - Two-column admin layout with category drag-and-drop
  - Invite code management service
  - Enhanced wizard export/import
  - Comprehensive test coverage (17 new test files)
2025-10-16 15:28:48 +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
f71e25f620 feat: add Drop media server support
Implements comprehensive Drop media server integration following the
media-server integration checklist:

## Core Implementation
- Create DropClient with RestApiMixin base class
- Implement full user management API (CRUD operations)
- Support Drop's two-step user creation (invitation → signup)
- Bearer token authentication with System tokens
- Proper error handling for missing Simple Authentication

## Integration Points
- Register client via @register_media_client decorator
- Add connection checker with API validation
- Wire into media_servers routes and forms
- Update UI templates (create/edit server modals)

## API Features
- User listing and synchronization from Drop API
- Statistics and server health monitoring
- Invitation-based user creation workflow
- Proper policy mapping (enabled, admin, displayName)

## Error Handling
- Clear messaging when Simple Authentication disabled
- Token permission validation and logging
- Graceful fallback for missing API endpoints

Drop integration ready for use once Simple Authentication
is enabled on the Drop server.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 12:41:45 +00:00
engels74
0f0dedde0a feat: implement wizard step interaction requirement system
Add comprehensive "require interaction" functionality for wizard steps that prevents users from proceeding until they engage with step content.

## Key Features:
- **Database Integration**: New `require_interaction` boolean field in WizardStep model with migration
- **Frontend Gating**: Robust JavaScript system that disables "Next" button until user clicks links/buttons in step content
- **UI Enhancement**: Improved checkbox forms with clear descriptions and visual indicators
- **Event Handling**: Advanced interaction detection with proper HTMX disabling and event capture
- **Admin Interface**: Full integration with wizard configuration forms (main and simple)
- **Export/Import**: Support for require_interaction field in wizard step data operations

## Technical Implementation:
- Disabled button state management with pointer-events and tabindex control
- HTMX attribute manipulation to prevent premature navigation
- Event listener capture phase handling for reliable interaction blocking
- Comprehensive test coverage for interaction scenarios
- Form validation and user experience improvements

## Files Modified:
- Backend: models, routes, forms, services, migration
- Frontend: JavaScript interaction logic, templates, UI components
- Testing: Complete test suite for interaction requirements

This feature ensures users engage with critical wizard content before proceeding, improving onboarding experience and preventing accidental step skipping.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 14:46:50 +02:00
Matthieu B
486e40e202 fixes and closes #784 #772 #795 2025-08-27 22:08:37 +02:00
Matthieu B
59f81b57cc Add Navidrome support: integrate client, connection check, and UI options 2025-08-15 13:12:20 +02:00
Matthieu B
31228f7a93 Add Audiobookrequest 2025-08-15 11:11:22 +02:00
Matthieu B
612931a743 Remove external integration fields from GeneralSettingsForm and associated HTML template 2025-08-13 22:11:38 +02:00
Matthieu B
5f95b788b5 Add external integration fields to GeneralSettingsForm and update settings template 2025-08-13 21:33:39 +02:00
Matthieu B
1723e876b6 Refactor API models and invitation flow; add comprehensive tests
- Updated `InvitationCreateRequest` model to change `server_ids` from required to optional with improved description.
- Enhanced `library_model` to include `external_id`, `server_name`, and `enabled` fields.
- Modified `InvitationFlowManager` to prioritize new many-to-many relationship checks for invitations.
- Created a new migration file to merge branches related to API key and foreign key improvements.
- Added comprehensive tests for API endpoints, including status, users, invitations, libraries, servers, and API key management.
- Implemented error handling tests for malformed JSON and inactive API keys.
2025-08-13 20:58:11 +02:00
Matthieu B
b27167e4eb Merge latest changes from main
Resolved conflicts in:
- app/models.py: Combined ApiKey and ExpiredUser models
- app/logging_config.py: Combined API logger and alembic logger configurations
- app/blueprints/public/routes.py: Combined server resolution approaches with fallback
2025-08-13 20:15:05 +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
copilot-swe-agent[bot]
60cb5d8972 Implement comprehensive API system with key management
Co-authored-by: Tomat0r <68383702+Tomat0r@users.noreply.github.com>
2025-07-28 12:02:42 +00:00
Matthieu B
f08e02386c fix and closes #708 2025-07-15 15:13:40 +02:00
Matthieu B
7b8f64af7d Fix SQLAlchemy model constructors to accept keyword arguments
- Added __init__ constructors to all SQLAlchemy models
- Fixed pyright 'No parameter named' errors across the codebase
- Fixed various ruff linting issues (SIM108, E741, E402, SIM102, B904, SIM105)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 13:52:15 +02:00
Matthieu B
dd8da235ee Enhance media server support by adding Kavita integration and updating existing routes. Refactor Audiobookshelf, Emby, Jellyfin, and Romm blueprints to utilize a common media blueprint factory. Implement unified invitation processing and improve wizard migration handling. Update templates and forms to accommodate new server types and ensure backward compatibility. 2025-07-12 21:29:13 +02:00
Matthieu B
be1bdb83f1 added translation strings 2025-07-11 15:29:52 +02:00
Matthieu B
78765ca76a Support Komga closes #677 2025-07-11 14:44:10 +02:00
Matthieu B
c86cc75e32 Added Multi-Admin Accounts 2025-07-08 19:14:07 +02:00
Matthieu B
51da1160a3 add custom steps 2025-07-04 12:33:33 +02:00
Matthieu B
98dd3cb79b feat: Add multi-server invite support with Jellyfin integration 2025-07-03 21:43:43 +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
Matthieu B
1b1684eee1 romm wizard step 2025-06-26 15:30:19 +02:00
Matthieu B
9ac933ac26 Add wizard step management and enhance asset building 2025-06-25 23:17:46 +02:00
Matthieu B
6e7f3b0506 Added Romm support, and simplified Media APIs to reduce code duplication. 2025-06-20 20:22:45 +02:00
Matthieu B
dedf79be01 fix and closes #630 2025-06-17 18:23:05 +01:00
Matthieu B
6cc740eba9 Update wizard access protection settings and Settings UI
Close #611
2025-06-16 21:08:59 +01:00
Matthieu B
6ffce56a22 Add external url to media server 2025-06-13 14:57:58 +01:00
Matthieu B
772bc24fa6 Added multiple servers support and identity linking 2025-06-13 14:37:57 +01:00
fireph
195dde2e49 Change password to not have limit
Also changed admin account signup to have the same password requirements as jellyfin account signup (since presumably wizarr is somewhat public, it should have a good password as well).
2025-06-09 02:42:37 -07:00
mtthidoteu
1acaff8657 fix and close #548 2025-06-03 14:46:31 +01:00
mtthidoteu
d8bc533230 fix and close #536 2025-06-03 13:19:50 +01:00
fireph
5317a210b3 remove invite to plex home option as a default setting 2025-06-03 03:28:55 -07:00
fireph
0725af6f0a Plex specific settings defaults
Add "Allow Downloads" and "Invite to Plex Home" settings in the server settings so that defaults can be set when creating invites.
2025-06-03 03:16:25 -07:00
i18n-bot
0e880cf945 emergency fix and close #542 2025-05-26 10:54:11 +02:00
Matthieu B
19fa6e497a Import Legacy Database 2025-05-22 18:50:03 +01:00
Matthieu B
5e1d1105ab Fix internal address 2025-05-22 12:38:49 +01:00
Matthieu B
4889e25d31 Huge rewrite 2025-05-20 13:01:20 +01:00