【问题标题】:phabricator global email preferencesphabricator 全球电子邮件偏好
【发布时间】:2014-12-03 02:50:49
【问题描述】:

有没有办法在 Phabricator 中配置全局电子邮件通知首选项?

我知道它允许管理每个用户的首选项 (https://secure.phabricator.com/book/phabricator/article/mail_rules/#reducing-email),但我想配置默认参数以供所有新用户帐户继承。

如果能够批量更新现有用户帐户的电子邮件通知首选项,那就太好了。

【问题讨论】:

    标签: phabricator


    【解决方案1】:

    作为管理员,转到您的设置并单击全局设置。改变你想要的。这些将适用于所有新帐户。

    【讨论】:

    • 在我的案例中,用户已经明确表示他们希望将工作留给管理员,并且希望对电子邮件通知有一个共同的策略。此外,它们都位于不同的电子邮件服务器/客户端上,因此此处不能选择使用电子邮件规则。你会考虑篡改 user_preferences 数据库吗?或者 bin 文件夹中是否有任何命令行工具可以在这种情况下提供帮助?
    • 我在这里的答案是两年前的。 Modern Phabricator 现在具有全局帐户设置。
    【解决方案2】:

    更新 Phabricator 实例中所有用户的电子邮件首选项:

    1.在mysql控制台中运行以下SQL脚本:

    use phabricator_user;
    
    /*handle users who haven't customized their preferences yet (replace 'test' with name of your model user)*/
    insert into user_preferences(userPHID, preferences) select l.PHID, (select p.preferences from  user u join user_preferences p on (p.userPHID=u.PHID) where   
    u.userName = 'test') from user l where not exists(select * from user_preferences r where r.userPHID=l.PHID);
    
    /*change individual parameters for all users*/
    update user_preferences set preferences = replace(preferences, '"audit-add-ccs":1', '"audit-add-ccs":2');/*set A commit's subscribers change. to Ignore*/
    update user_preferences set preferences = replace(preferences, '"audit-projects":1', '"audit-projects":2');
    update user_preferences set preferences = replace(preferences, '"maniphest-priority":1', '"maniphest-priority":2');
    update user_preferences set preferences = replace(preferences, '"maniphest-cc":1', '"maniphest-cc":2');
    update user_preferences set preferences = replace(preferences, '"maniphest-projects":1', '"maniphest-projects":2');
    update user_preferences set preferences = replace(preferences, '"maniphest-unblock":1', '"maniphest-unblock":2');
    update user_preferences set preferences = replace(preferences, '"maniphest-column":1', '"maniphest-column":2');
    update user_preferences set preferences = replace(preferences, '"maniphest-other":1', '"maniphest-other":2');
    
    /*list current users' preferences*/
    select u.phid, u.userName, p.preferences from user u left join user_preferences p on (p.userPhid=u.phid);
    

    2.重启 Phabricator 守护进程和网络服务器:

    ./bin/phd restart
    service httpd restart
    

    免责声明:它在我的特定案例中对 Phabricator 的特定修订有效,但它肯定是“黑客”并且有可能损害用户偏好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多