88827be7be
Admin-only page reachable from a new card on the admin panel (replacing the Quick Actions card) that centralises housekeeping operations: * Database integrity: PRAGMA integrity_check / quick_check / foreign_key_check, plus VACUUM + ANALYZE to reclaim free space. * Leftover records: detects and removes orphaned rows left behind by deleted players/content (player_feedback, player_edit, playlist_content, dangling player.playlist_id) and orphaned edited-media folders on disk. * Player authentication tokens: manual reset (single or all), a configurable automatic reset interval, and cancellation of a pending reset. Resetting a token rotates player.auth_code and sets auth_reset_required, so the next heartbeat (POST /api/player-feedback) answers 401 + auth_required and the client restarts its authentication flow. A successful authentication clears the flag and stamps auth_token_issued_at, from which the interval is measured. New: PlayerAuthConfig model, add_player_auth_reset migration (registered in docker-entrypoint.sh), admin/maintenance.html.
26 lines
719 B
Python
26 lines
719 B
Python
"""Models package for digiserver-v2."""
|
|
from app.models.user import User
|
|
from app.models.player import Player
|
|
from app.models.playlist import Playlist, playlist_content
|
|
from app.models.content import Content
|
|
from app.models.server_log import ServerLog
|
|
from app.models.player_feedback import PlayerFeedback
|
|
from app.models.player_edit import PlayerEdit
|
|
from app.models.player_user import PlayerUser
|
|
from app.models.https_config import HTTPSConfig
|
|
from app.models.player_auth_config import PlayerAuthConfig
|
|
|
|
__all__ = [
|
|
'User',
|
|
'Player',
|
|
'Playlist',
|
|
'Content',
|
|
'ServerLog',
|
|
'PlayerFeedback',
|
|
'PlayerEdit',
|
|
'PlayerUser',
|
|
'HTTPSConfig',
|
|
'PlayerAuthConfig',
|
|
'playlist_content',
|
|
]
|