UserPreferences
User preferences and settings.
Stores user-specific configuration like theme, language,
notification preferences, etc.
Used by both Indie and Federated modes:
- Indie: Linked to LocalUser
- Federated: Linked by user_id from auth gateway
Attributes:
user_id: Reference to user (string ID for flexibility)
settings: JSON dict of preference key-value pairs
Example:
prefs = UserPreferences(
user_id="user-123",
settings={
"theme": "dark",
"language": "en",
"notifications_enabled": True,
},
)
Source: user.py
Fields
| Field | Type | Required | Description | Validators |
|---|---|---|---|---|
| user_id | str | User identifier | - | |
| settings | dict[str, Any] | User preference key-value pairs | - |
Permissions
| Role | Create | Delete | Read | Write |
|---|---|---|---|---|
| All | ✓ | ✓ | ✓ | ✓ |
Configuration
| Setting | Value |
|---|---|
| Submittable | False |
| Track Changes | True |
Controller
Controller hooks are implemented in *_controller.py files.
Available lifecycle hooks:
validate()- Called before save, raise exceptions for validation errorsbefore_insert()- Called before inserting a new documentafter_insert()- Called after successfully insertingbefore_save()- Called before saving (insert or update)after_save()- Called after savingbefore_delete()- Called before deletingafter_delete()- Called after deleting