- Add GroupClaims model for JWT permission snapshots - Add JWTPayload model for typed JWT decoding - Refactor auth middleware: jwt_required (no DB) -> admin_required (no DB) -> auth_required (DB) - Add UserBanStore for instant ban enforcement via Redis + memory fallback - Fix status check bug: StrEnum is always truthy, use explicit != ACTIVE - Shorten access_token expiry from 3h to 1h - Add CaptchaScene enum and verify_captcha_if_needed service - Add require_captcha dependency injection factory - Add CLA document and new default settings - Update all tests for new JWT API Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
106 lines
2.7 KiB
Python
106 lines
2.7 KiB
Python
from .user import (
|
|
BatchDeleteRequest,
|
|
JWTPayload,
|
|
LoginRequest,
|
|
RefreshTokenRequest,
|
|
RegisterRequest,
|
|
AccessTokenBase,
|
|
RefreshTokenBase,
|
|
TokenResponse,
|
|
User,
|
|
UserBase,
|
|
UserStorageResponse,
|
|
UserPublic,
|
|
UserResponse,
|
|
UserSettingResponse,
|
|
WebAuthnInfo,
|
|
# 管理员DTO
|
|
UserAdminUpdateRequest,
|
|
UserCalibrateResponse,
|
|
UserAdminDetailResponse,
|
|
)
|
|
from .user_authn import AuthnResponse, UserAuthn
|
|
from .color import ThemeResponse
|
|
|
|
from .download import (
|
|
Download,
|
|
DownloadAria2File,
|
|
DownloadAria2Info,
|
|
DownloadAria2InfoBase,
|
|
DownloadStatus,
|
|
DownloadType,
|
|
)
|
|
from .node import (
|
|
Aria2Configuration,
|
|
Aria2ConfigurationBase,
|
|
Node,
|
|
NodeStatus,
|
|
NodeType,
|
|
)
|
|
from .group import (
|
|
Group, GroupBase, GroupClaims, GroupOptions, GroupOptionsBase, GroupAllOptionsBase, GroupResponse,
|
|
# 管理员DTO
|
|
GroupCreateRequest, GroupUpdateRequest, GroupDetailResponse, GroupListResponse,
|
|
)
|
|
from .object import (
|
|
CreateFileRequest,
|
|
CreateUploadSessionRequest,
|
|
DirectoryCreateRequest,
|
|
DirectoryResponse,
|
|
FileMetadata,
|
|
FileMetadataBase,
|
|
Object,
|
|
ObjectBase,
|
|
ObjectCopyRequest,
|
|
ObjectDeleteRequest,
|
|
ObjectMoveRequest,
|
|
ObjectPropertyDetailResponse,
|
|
ObjectPropertyResponse,
|
|
ObjectRenameRequest,
|
|
ObjectResponse,
|
|
ObjectType,
|
|
PolicyResponse,
|
|
UploadChunkResponse,
|
|
UploadSession,
|
|
UploadSessionBase,
|
|
UploadSessionResponse,
|
|
# 管理员DTO
|
|
AdminFileResponse,
|
|
AdminFileListResponse,
|
|
FileBanRequest,
|
|
)
|
|
from .physical_file import PhysicalFile, PhysicalFileBase
|
|
from .uri import DiskNextURI, FileSystemNamespace
|
|
from .order import Order, OrderStatus, OrderType
|
|
from .policy import Policy, PolicyBase, PolicyOptions, PolicyOptionsBase, PolicyType, PolicySummary
|
|
from .redeem import Redeem, RedeemType
|
|
from .report import Report, ReportReason
|
|
from .setting import (
|
|
Setting, SettingsType, SiteConfigResponse,
|
|
# 管理员DTO
|
|
SettingItem, SettingsListResponse, SettingsUpdateRequest, SettingsUpdateResponse,
|
|
)
|
|
from .share import Share, ShareBase, ShareCreateRequest, ShareResponse, AdminShareListItem
|
|
from .source_link import SourceLink
|
|
from .storage_pack import StoragePack
|
|
from .tag import Tag, TagType
|
|
from .task import Task, TaskProps, TaskPropsBase, TaskStatus, TaskType, TaskSummary
|
|
from .webdav import WebDAV
|
|
|
|
from .database_connection import DatabaseManager
|
|
|
|
from .model_base import (
|
|
MCPBase,
|
|
MCPMethod,
|
|
MCPRequestBase,
|
|
MCPResponseBase,
|
|
ResponseBase,
|
|
# Admin Summary DTO
|
|
MetricsSummary,
|
|
LicenseInfo,
|
|
VersionInfo,
|
|
AdminSummaryResponse,
|
|
)
|
|
|
|
# mixin 中的通用分页模型
|
|
from .mixin import ListResponse |