メールはコアに含まれるフィールドになりましたが、ユーザー向けのストックメールは非公開に設定されているようです。管理者権限を持つユーザーまたはユーザー自身のみが表示できます。
他のユーザーがこの基本的なフィールドを表示できるようにしたいのですが、誰かが他の情報を他のユーザーからコピーして、単に表示できるようにするための別の電子メールフィールドを作成する必要はありません。
これはかなり簡単で一般的な方法ですが、まだ何も見つかりません。
通常の管理者以外のユーザーが他のユーザーのメールを表示できるようにするにはどうすればよいですか?
同様のユースケースがありました。別の解決策は次のとおりです。ユーザーのプロファイルに新しいメールフィールドを追加し、カスタムモジュールでこれを行いました(これはDrupal v8.1)です)、_hook_user_presave
_ を参照してください= Drupal API :
function MYMODULE_user_presave(User $user){ $user->set('field_profile_email', $user->getEmail()); }
次に、質問へのコメントで述べたように、この新しいフィールドをビューの、たとえば部門の連絡先リストで使用できます。 フィールド権限 を使用して、これをさらに拡張することもできます。
これには2番目のフィールドを作成することの欠点がありますが、この関数は手動でコピーする必要がなく、どこからでも使用できます。
あなたが取ることができる1つのルートは、ユーザーにユーザー情報の表示権限を許可し、この情報をユーザープロファイルページに表示することです。
これを行うには、テーマのser.html.twigをオーバーライドします(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 }}
を使用して、email変数をユーザープロファイルテンプレートに挿入します。
他のユーザーのメールアドレスを表示する権限を追加するD8 Vore機能リクエストがあります: ユーザーのメールフィールドを表示する新しい権限を追加[#2799049]\| Drupal.org