# -*- coding: utf-8 -*- """站点认证与管理系统 提供网站级用户体系: - 用户注册(邮箱验证码)/ 登录 / 登出 / 注册即赠下载次数(试用领取已并入注册) - 按次计费(一首歌 = 1 次)、卡密(次数卡)充值 - 管理员后台:用户管理 / SMTP 配置 / 卡密生成 / 公告 / 日志 / 数据库备份 - 接口装饰器:login_required(强制登录 + 按次扣费)/ admin_required(仅管理员) 数据存储:SQLite(data/site.db),会话:Flask 签名 Cookie(secret_key 持久化) """ # 兼容门面:实现已按职责拆分到同包各子模块,此处原样再导出。 # 用 `__all__` 声明再导出(ruff F401 与 pyright 均据此认定「有意再导出」), # 使既有调用点(auth_system.xxx / from auth_system import Y)零改动。 # # ⚠️ 路径常量(DATA_DIR / DB_PATH / BACKUP_DIR / SECRET_KEY_PATH)在此只是 # **import 时的值快照**:它们是再导出的绑定,运行时改 auth_system.DB_PATH # 不会影响 db / backup 的实际读写路径(那只会静默失效,且看起来"改成功了")。 # 一律不要经由包属性做重定向: # - 测试:patch `auth_system.db.`(唯一来源,db 与 backup 都随动) # - 部署:设置环境变量 SITE_DATA_DIR(须在进程启动前) # 此处保留再导出仅为不破坏既有 `auth_system.DB_PATH` 读取方(如黄金测试)。 from .backup import ( _BACKUP_ERR_TS, _BACKUP_NAME_LOCK, _auto_backup_loop, _backup_is_valid_db, _backup_thread_started, _before_restore_hook, backup_path, create_backup, delete_backup, list_backups, prune_backups, register_before_restore_hook, restore_backup, start_auto_backup, ) from .cards import ( delete_card, generate_cards, list_cards, redeem_card, set_card_disabled, ) from .credits import ( add_credits, charge_credits, format_credits, refund_credits, reserve_credits, ) from .db import ( BACKUP_DIR, DATA_DIR, DB_PATH, DEFAULT_ADMIN_USER, DEFAULT_REGISTER_CREDITS, SECRET_KEY_PATH, SESSION_KEY, _q, _x, get_secret_key, init_db, ) from .geo import ( _PROVINCE_CACHE, PROVINCE_BAN_LIMIT, PROVINCE_WINDOW, _is_private_ip, query_ip_province, record_login_location, ) from .ledger import ( ledger_cleanup_settled, ledger_get, ledger_open, ledger_recover_orphans, ledger_rename, ledger_settle, ledger_supplement, reserve_and_open, ) from .logs import ( _LOG_WRITE_COUNTER, add_log, clear_logs, query_logs, ) from .mail import ( _CODE_EMAIL_TEMPLATES, _CODE_FAILS, _CODE_FAILS_MAX, _CODE_PURPOSES, _EMAIL_SENT_24H, _SMTP_ENC_PREFIX, _code_fails_trim, _smtp_connect, _smtp_password_decrypt, _smtp_password_encrypt, check_verify_code, get_smtp_config, restore_verify_code, save_smtp_config, send_email, send_verify_code, smtp_configured, ) from .security import ( _PBKDF2_ITERS, _hash, _hash_new, _normalize_email, _verify_password, ) from .settings import ( get_announcement, get_setting, save_announcement, set_setting, ) from .users import ( RegistrationGuard, _last_province, _user_public, ban_user, create_user, delete_user, device_used, get_user_by_email, get_user_by_id, get_user_by_name, list_users, register_ip_exceeded, reset_password, set_user_credits, set_user_netease_cookie, set_user_password, set_user_status, unban_user, verify_login, ) __all__ = [ 'BACKUP_DIR', 'DATA_DIR', 'DB_PATH', 'DEFAULT_ADMIN_USER', 'DEFAULT_REGISTER_CREDITS', 'PROVINCE_BAN_LIMIT', 'PROVINCE_WINDOW', 'SECRET_KEY_PATH', 'SESSION_KEY', '_BACKUP_ERR_TS', '_BACKUP_NAME_LOCK', '_CODE_EMAIL_TEMPLATES', '_CODE_FAILS', '_CODE_FAILS_MAX', '_CODE_PURPOSES', '_EMAIL_SENT_24H', '_LOG_WRITE_COUNTER', '_PBKDF2_ITERS', '_PROVINCE_CACHE', '_SMTP_ENC_PREFIX', 'RegistrationGuard', '_auto_backup_loop', '_backup_is_valid_db', '_backup_thread_started', '_before_restore_hook', '_code_fails_trim', '_hash', '_hash_new', '_is_private_ip', '_last_province', '_normalize_email', '_q', '_smtp_connect', '_smtp_password_decrypt', '_smtp_password_encrypt', '_user_public', '_verify_password', '_x', 'add_credits', 'add_log', 'backup_path', 'ban_user', 'charge_credits', 'check_verify_code', 'clear_logs', 'create_backup', 'create_user', 'delete_backup', 'delete_card', 'delete_user', 'device_used', 'format_credits', 'generate_cards', 'get_announcement', 'get_secret_key', 'get_setting', 'get_smtp_config', 'get_user_by_email', 'get_user_by_id', 'get_user_by_name', 'init_db', 'ledger_cleanup_settled', 'ledger_get', 'ledger_open', 'ledger_recover_orphans', 'ledger_rename', 'ledger_settle', 'ledger_supplement', 'list_backups', 'list_cards', 'list_users', 'prune_backups', 'query_ip_province', 'query_logs', 'record_login_location', 'redeem_card', 'refund_credits', 'register_before_restore_hook', 'register_ip_exceeded', 'reserve_and_open', 'reserve_credits', 'reset_password', 'restore_backup', 'restore_verify_code', 'save_announcement', 'save_smtp_config', 'send_email', 'send_verify_code', 'set_card_disabled', 'set_setting', 'set_user_credits', 'set_user_netease_cookie', 'set_user_password', 'set_user_status', 'smtp_configured', 'start_auto_backup', 'unban_user', 'verify_login', ]