Как я могу разрешить обычным пользователям, не являющимся администраторами, просматривать электронную почту других пользователей?


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

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

Это должно быть довольно простой/распространенной практикой, но я не могу пока ничего не нашел.

Как мне разрешить обычным пользователям, не являющимся администраторами, просматривать электронную почту других пользователей?

Author: kiamlaluno, 2016-06-26

3 answers

У меня был похожий случай использования. Вот еще одно решение: Я добавил новое поле электронной почты в профили пользователей и в пользовательском модуле (я сделал это в Drupal v8.1) используйте hook_user_presave Смотрите Api Drupal:

function MYMODULE_user_presave(User $user){ $user->set('field_profile_email', $user->getEmail()); }

Затем вы можете использовать это новое поле в представлениях, например, в списке контактов отдела, как было упомянуто в комментарии к вопросу. Вы также можете использовать Разрешения на поля для дальнейшего улучшения этого.

У этого есть недостаток в создании второго поля, но эта функция позволяет избежать необходимости копировать ее вручную, и теперь она доступна в любом месте.

 1
Author: beltouche, 2016-10-03 05:44:39

Один из способов, которым вы можете воспользоваться, - разрешить пользователям Просматривать информацию о пользователе и отображать эту информацию на странице профиля пользователя.

Для этого переопределите пользователь.html.ветка в вашей теме (скопируйте ее из core/modules/user/templates/user.html.twig в каталог шаблонов вашей темы), затем вставьте электронное письмо в шаблон через hook_preprocess_user() в вашем файле mytheme.theme:

/**
 * Implements hook_preprocess_user()
 */
function mytheme_preprocess_user(&$variables) {
  $variables['mail'] = $variables['user']->getEmail();
}

В этом примере вы сможете пользователь {{ mail }}, чтобы вставить переменную электронной почты в шаблон профиля пользователя.

 6
Author: Shawn Conn, 2016-06-27 02:52:28

Есть запрос функции D8 Vore на добавление разрешения на просмотр адреса электронной почты других пользователей: Добавить новое разрешение на просмотр поля электронной почты пользователя [#2799049]\| Drupal.org

 0
Author: geek-merlin, 2018-12-21 20:09:23