phabricator глобальные настройки электронной почты

Есть ли способ настроить глобальные настройки уведомлений по электронной почте в Phabricator?

Я знаю, что он позволяет управлять настройками для каждого пользователя (https://secure.phabricator.com/book/phabricator/article/mail_rules/#reduction-email), но я хотел бы настроить параметры по умолчанию, которые наследуются всеми новыми учетными записями пользователей.

Также было бы здорово, если бы была возможность массово обновлять настройки уведомлений по электронной почте для существующих учетных записей пользователей.


person Sergey Tarasov    schedule 03.12.2014    source источник


Ответы (2)


Как администратор, перейдите в «Настройки» и нажмите «Глобальные настройки». Измените то, что вы хотите. Они будут применяться ко всем новым учетным записям.

person Chad Little    schedule 03.12.2014
comment
В моем случае пользователи явно заявили, что хотели бы оставить эту работу администратору и предпочли бы иметь общую политику для уведомлений по электронной почте. Кроме того, все они находятся на разных почтовых серверах/клиентах, поэтому использование правил электронной почты здесь не вариант. Считаете ли вы вмешательство в базу данных user_preferences допустимым? или есть ли какой-нибудь инструмент командной строки в папке bin, который может помочь в этом случае? - person Sergey Tarasov; 03.12.2014
comment
Мой ответ здесь двухлетней давности. В Modern Phabricator теперь есть глобальные настройки учетной записи. - person Chad Little; 25.11.2016

Чтобы обновить настройки электронной почты для всех пользователей экземпляра Phabricator:

1. запустите следующий скрипт SQL в консоли mysql:

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, но это, безусловно, «хак» и может повредить пользовательские настройки.

person Sergey Tarasov    schedule 04.12.2014