feat: 实现PIPL数据主体删除权支持功能
- 新增 LeadDeletionRequest 模型,支持邮箱验证的删除申请/确认流程 - POST /api/v1/custom/leads/deletion-requests/ 发起申请(通用响应避免探测邮箱是否存在) - POST /api/v1/custom/leads/deletion-requests/confirm/ 确认删除(24小时token有效期) - 按邮箱在 Lead.data 中匹配并删除对应记录,跨SQLite/Postgres使用Python级匹配 - LeadDeletionRequest 通过 Django Admin 只读展示供合规审计 - 新增 FRONTEND_BASE_URL 设置用于拼接邮件确认链接 - apps/forms/tests.py 新增6个测试用例(含节流缓存隔离修复),全仓库30个用例通过 - 更新设计文档 §2.15/§2.16 勾选项
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
"""
|
||||
LeadDeletionRequest 通过 Django Admin(非 Wagtail)暴露为只读审计视图,
|
||||
供合规/客服人员查看 PIPL 数据删除申请处理记录,详见
|
||||
documents/设计方案分析与完善版.md §2.15。
|
||||
"""
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import LeadDeletionRequest
|
||||
|
||||
|
||||
@admin.register(LeadDeletionRequest)
|
||||
class LeadDeletionRequestAdmin(admin.ModelAdmin):
|
||||
list_display = (
|
||||
"contact",
|
||||
"status",
|
||||
"requested_at",
|
||||
"completed_at",
|
||||
"deleted_count",
|
||||
)
|
||||
list_filter = ("status",)
|
||||
search_fields = ("contact",)
|
||||
readonly_fields = [f.name for f in LeadDeletionRequest._meta.fields]
|
||||
|
||||
def has_add_permission(self, request):
|
||||
return False
|
||||
|
||||
def has_change_permission(self, request, obj=None):
|
||||
return False
|
||||
Reference in New Issue
Block a user