Files
OnlineJudge/options/migrations/0003_remove_smtp_config.py
yuetsh 927f235537 refactor: 移除邮件功能
发信能力整体下线,唯一的调用方(忘记密码)前端也从来没接过。

- utils/shortcuts.py 删 send_email,连带四个 django.core.mail 相关 import
- account/tasks.py 整个删除,里面只有 send_email_async 一个 actor
- 删 ApplyResetPasswordAPI / ResetPasswordAPI 及其路由、serializer,
  User.reset_password_token 和 reset_password_token_expire_time 两个
  字段(account/0010)
- 删 SMTPAPI / SMTPTestAPI 及其路由、三个 SMTP serializer、
  SysOptions.smtp_config
- account/templates/reset_password_email.html

options/0003 数据迁移删掉库里的 smtp_config 行:_init_option 会为每个
OptionKey 建行,key 从代码里去掉后它会变成孤儿,而且配过 SMTP 的话
value 里存着明文密码。

保留 ResetUserPasswordAPI(管理端直接重置密码,不发信,前端在用)和
User.email(注册要填)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 23:17:48 -06:00

25 lines
779 B
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 邮件功能已整体移除smtp_config 不再有读写方。_init_option 建过的那一行会留在
# 库里成为孤儿,且里面存着明文 SMTP 密码,这里一并删掉。
from django.db import migrations
def remove_smtp_config(apps, schema_editor):
SysOptions = apps.get_model("options", "SysOptions")
SysOptions.objects.filter(key="smtp_config").delete()
def restore_smtp_config(apps, schema_editor):
SysOptions = apps.get_model("options", "SysOptions")
SysOptions.objects.get_or_create(key="smtp_config", defaults={"value": {}})
class Migration(migrations.Migration):
dependencies = [
("options", "0002_add_sql_language"),
]
operations = [
migrations.RunPython(remove_smtp_config, restore_smtp_config),
]