Commit Graph

11 Commits

Author SHA1 Message Date
Matthieu B
73c29458fe fix: resolve all test failures, linting errors, and type errors
- Fix 55 test failures caused by missing request contexts and incorrect
  session_transaction() usage across 8 test files
- Fix ruff import sorting errors and unused imports
- Fix 122 type errors: rename method override parameters to match base
  classes, add None guards for fetchone()/datetime, widen dict type
  annotations, add type: ignore for SQLAlchemy stub limitations
- Add [tool.ty.rules] config to suppress unsupported-base warnings
- Fix _ variable shadowing gettext in wizard routes
- Add noqa: ARG002 for unused method arguments required by base class
2026-03-29 16:20:23 +02:00
Matthieu B
6a3632ec66 refactor: update type hints for better clarity and consistency across multiple files 2025-10-23 19:49:58 +02:00
Matthieu B
9b5aa0972a refactor: remove slop from media and new linting rules 2025-10-23 18:33:50 +02:00
Matthieu B
6ab5e024db Revert "Merge pull request #925 from wizarrrr/chore/python-3.14-upgrade"
This reverts commit 35dde7c19a, reversing
changes made to c8cf9905ba.
2025-10-19 14:05:59 +02:00
Matthieu B
36227c762b refactor: Update type hints for user details methods and other functions for improved clarity 2025-10-18 17:42:26 +02:00
Mully
4996b1c8f3 fix: separate disable and enable
+ Much clearer separation of enable and disable (fixing the earlier terrible idea)

+ Audiobookshelf, jellyfin and romm now have enable user logic in the enable_user func
2025-10-10 10:45:40 -04:00
Mully
41125723b8 fix: linting errors 2025-10-10 10:15:12 -04:00
Mully
73e1e12629 feat: enable user endpoint
+ POST /users/<user_id>/enable added

+ Most service's enable_user implementation informs the user that enabling is not supported

+ Audiobookshelf, Jellyfin and RomM can now both disable and enable users

+ Since the few platforms that natively support disabling/enabling users use the same endpoints, disable_user has been given an optional boolean param called enable which defaults to false. This reduces the need of any working enable_user funcs to have a nearly identical implementation.
2025-10-10 10:00:17 -04: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
a02b58172c refactor: improve Drop client type safety and policies
- Add TYPE_CHECKING import for MediaUserDetails type hint
- Improve get_user_details return type annotation
- Update user policies mapping with standardized permission keys
- Fix admin property mapping in get_user_details
- Set library_access to None for Drop (indicates full access)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 12:41:45 +00: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