服务条款和隐私接受在注册时
这是什么
每个新帐户必须明确接受服务条款 和隐私政策,才能完成注册。注册 表单显示一个必填的复选框,链接这两个文档(它们在新标签页中打开,以便不丢失表单);未选中该复选框提交会阻止注册,并显示清晰的消息。
证据记录
用户注册时,平台会在他们的UserWorkspacePreference行上盖上terms_accepted_at
(确切时间)和terms_version(他们看到的条款的生效日期)。如果接受状态有争议,这就是记录。在2026-07-20之前创建的帐户没有盖章
— 它们早于此门槛。
法律页面
- /terms/ — 通俗语言的服务条款:内容所有权、AI输出免责声明(不是专业建议)、可接受使用、按现状保修免责声明、责任限制、终止、变更通知。
- /privacy/ — 2026-07-20重写,以友好和通俗的语言呈现,同时不命名内部供应商或堆栈细节 (托管、电子邮件、AI提供商以泛称描述)。这是故意的:旧页面向竞争对手揭示了基础设施选择,每次提供商更改时都会产生更新义务。一个测试防止供应商名称重新出现。
- 两个页面都通过注册复选框、网站页脚和 “探索OrbitingFox”弹出窗口链接(主页标题的i和 页脚i图标)。
编辑法律页面(无编码)
管理仪表板 → 系统 → 法律页面
(/adminapp/legal-pages/):编辑任一文档的完整HTML并
保存 & 发布 — 公共页面立即更新。重置为
内置随时切换回发货文本(自定义草稿保留,仅切换关闭)。空保存将被拒绝,如果数据库覆盖出现任何问题,内置文本将呈现 — 页面永远不能空。
法律页面编辑器移除内容(BL-303)
服务条款和隐私政策是每位访问者可见的公共页面,因此编辑器不发布原始HTML。在保存时,以及每当页面显示时,脚本、事件处理程序(如onclick)、javascript:链接和内联style属性将被移除;标题、段落、列表、链接、表格和class属性会保留。如果清理后没有留下任何内容,保存将被拒绝,内置文本继续显示。这两个页面的翻译(包括在页面翻译屏幕上手工编辑的翻译)同样会被清理。
对于开发人员:唯一可信的HTML是adminapp/legal_content.py中的内置文本。其余内容通过clean_legal_html()处理(nh3默认加class);save_custom_legal()在写入时清理,get_legal_content()在读取时清理;保护机制是adminapp/test_legal_sanitise.py。
针对开发人员/未来变更
- 内置内容:
adminapp/legal_content.py(管理员覆盖存储在adminapp.LegalDocument中);在config/urls.py中命名为terms和privacy的路由呈现templates/legal_page.html。 - 当条款发生重大变化时:更新模板文本和其
“生效日期”,然后在
userapp/models.py中增加CURRENT_TERMS_VERSION,以便新注册用户记录新版本。 - 复选框保留在
SignupForm(config/forms.py, 字段accept_terms);盖章发生在表单的save()中。 - 测试:
config.tests.TermsAcceptanceTests。
专业注意事项
这些文档按照稳健的行业标准编写,但尚未经过持证律师的审查。在向客户收费(Stripe阶段)或达到重要规模之前,应请律师审查:(1)服务条款中的适用法律/管辖地条款,以及(2)隐私政策是否需要针对目标受众的GDPR/CCPA特定部分。
This guide was translated automatically. Read the English original.