你好,
我刚开始接触 Discourse 的管理与开发,还不会 Ruby(不过我完全愿意学习)。我的第一个任务是搭建 Discourse 实例,我已经在 Digital Ocean 上使用官方 Docker 镜像完成了这一步。目前进展顺利——要向让这一切变得如此简单的人们致敬!
接下来的任务对我来说更具挑战性。我自愿为一家非营利组织搭建 Discourse,该组织希望将用户注册和参与权限限制为仅限其成员。因此,我需要以某种方式修改、挂钩(或替换)新用户创建流程,以便在程序上验证提交的电子邮件地址是否与现有组织的当前成员匹配,并确认该成员的到期日期是否在未来。
该组织使用的是 NeonCRM,他们提供的 API 使得这种验证相对容易。据我所知,Discourse 也提供了 API,可以执行任何手动操作所能完成的任务。因此,从理论上讲,实现我的目标是完全可行的,对吧?问题在于最佳方案是什么。
例如,如果 Discourse 允许你编写一个事件监听器(或插件)来监听新用户注册,执行上述验证逻辑,并在必要时中止注册,同时显示一条 informative 消息(例如:“抱歉,您需要成为 XYZ 协会的成员”),那就太棒了。
或者,我可以想象自己编写一个用户注册页面(使用我熟悉的 PHP 语言),该页面会同时调用两个 API。但那样的话,我就需要以某种方式“修改”我的 Discourse 安装,使注册页面将用户重定向到我的自定义版本。
因此,我非常希望能听到一些关于整体策略的建议,以及我应该从哪里开始学习以实现这一目标。
非常感谢!