用例
我们正在努力改善社区的入职体验。自然而然地,我们希望利用我们所了解的用户信息,根据他们提供给我们的信息来执行/显示某些操作。
今天,我们的用户通过 OIDC 集成开始他们的账户创建,通过创建我们公司的账户。他们在 OIDC 中提供电子邮件、姓名和用户名,然后 OIDC 会将他们重定向回 Discourse。
问题
我们现在希望让他们填写一些额外的用户字段——这很好,因为 Discourse 提供了这个功能!不幸的是,我们无法根据先前字段的响应来显示字段。例如,我们想问“哪个角色最能描述您?”选项包括 developer、administrator 和 analyst。
- 如果他们选择
developer,我当然想问他们偏好的编程语言是什么。我之后也会将他们添加到开发人员用户组。 - 如果他们选择
analyst,我想问他们一系列不同的问题,并将他们添加到不同的用户组。
解决方案建议
如今,网络上的许多表单选项都提供条件表单字段(例如,您从哪里听说我们?如果选择了“其他”,则会出现一个附加字段来说明原因)。如果您能像处理新主题表单模板一样,开始朝着类似(但更强大)的方向发展,那就太好了,但需要增加一个能够依赖于另一个字段 ID 的功能,特别是该字段的输入。例如,它可能看起来像这样:
- type: dropdown
id: user-type
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Choose your role..."
label: "Which option best describes your job"
validations:
required: true
- type: dropdown
id: developer-type-programming-language
depends: user-type
choices:
- "Developer"
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Preferred programming language..."
label: "What is the primary programming language used in your role?"
validations:
required: true
在此示例中,所有用户都会被问到第一个问题。如果用户从下拉列表中选择 Developer,那么表单上会出现第二个问题,询问他们偏好的编程语言。
这种条件字段改进可以用于用户入职流程以及最初设计的新主题的地方。


