【问题标题】:Disable change password email on user import在用户导入时禁用更改密码电子邮件
【发布时间】:2017-08-29 01:44:56
【问题描述】:

当 CSV 将用户导入 Silverstripe 3.6 时,会发送更改密码的电子邮件。 有没有办法阻止这封电子邮件被发送?

【问题讨论】:

    标签: php silverstripe


    【解决方案1】:

    看起来这种行为是由于在导入过程中“成员”上的“密码”字段被“更改”(从无到有)。如果您查看Member::onBeforeWrite,它会检查配置属性“notify_password_change”,您可以使用自定义加载程序临时覆盖它:

    class NoEmailMemberCsvBulkLoader extends MemberCsvBulkLoader
    {
        public function load($filepath)
        {
            try {
                Config::nest()
                Config::inst()->update('Member', 'notify_password_change', false);
                return parent::load($filepath);
            } finally {
                Config::unnest();
            }
        }
    }
    

    然后您可以告诉 SilverStripe 使用您的导入器。这里的问题是MemberImportForm::doImport直接实例化MemberCsvBulkLoader,所以你不能用注入器重载它,或者以任何其他方式设置它。这是一种耻辱。

    一个短期选项,因为为 (注意:不是您可能拥有的客户端)导入 CSV 将是在您执行此操作时在您的 _config.php 文件之一中禁用此配置设置进口。

    您可以考虑向框架提出拉取请求,以使使用new MemberCsvBulkLoader 的区域可注入。另一种选择是直接向MemberCsvBulkLoader 发出拉取请求以在成员上设置此配置选项,因为您可能不是第一个认为这是批量导入工具的奇怪行为的人。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2014-05-24
      • 2019-12-06
      • 1970-01-01
      • 2016-06-27
      • 2023-03-15
      • 1970-01-01
      • 2014-01-16
      • 1970-01-01
      相关资源
      最近更新 更多