# 登録済み全メンバーのユーザーメールを表示する方法

**URL:** <https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136>\
**Category:** Support\
**Created:** [2020 年 8 月 17 日午後 12:30 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136 "2020-08-17T12:30:15Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![brucewayne](https://avatars.discourse-cdn.com/v4/letter/b/d07c76/32.png) [@brucewayne](https://meta.discourse.org/u/brucewayne)\
**Post date:** [2020 年 8 月 17 日午後 12:30 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/1 "2020-08-17T12:30:15Z")

</div>

Discourse コミュニティの皆様へ

すべてのユーザーのメールアドレスに公開アクセスを付与したいと考えています。  
より正確に申し上げますと、 **すべての登録メンバー** （管理者のみならず）がメンバーカードからユーザーのメールアドレスにアクセスできるようにしたいのです。  
つまり、すべてのメンバーが以下のリンクから他のメンバーのメールアドレスを閲覧できるようにしたいと考えています：  
[https://meta.discourse.org/{user}/summary](https://meta.discourse.org/%7Buser%7D/summary)

user.hbs ファイルを修正しようと試みましたが、メールアドレスデータへのアクセスは管理者のみ可能のようです。  
このデータを管理者だけでなく、誰でも閲覧できるようにする方法はありますか？

ご支援のほど、何卒よろしくお願いいたします。

リチャード

---

<div class="post-metadata">

**Author:** ![IAmGav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/iamgav/32/235598_2.png) [@IAmGav](https://meta.discourse.org/u/IAmGav)\
**Post date:** [2020 年 8 月 17 日午後 12:37 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/2 "2020-08-17T12:37:38Z")

</div>

リチャードさん、こんにちは。

そのためには、カスタムフィールドを設定するのが最も簡単な方法です。

 ![image](https://global.discourse-cdn.com/meta/original/3X/1/2/121f7c2f609129de16e6ac16b2a390e3678a27b6.png)

---

<div class="post-metadata">

**Author:** ![hawm](https://avatars.discourse-cdn.com/v4/letter/h/f07891/32.png) [@hawm](https://meta.discourse.org/u/hawm)\
**Post date:** [2020 年 8 月 17 日午後 12:41 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/3 "2020-08-17T12:41:53Z")

</div>

`check_emails` メソッドと `can_check_emails?` メソッドをソースコード内で検索し、それをオーバーライドします。

ただし、メールアドレスを公開するのは本当に良いアイデアでしょうか？

---

<div class="post-metadata">

**Author:** ![IAmGav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/iamgav/32/235598_2.png) [@IAmGav](https://meta.discourse.org/u/IAmGav)\
**Post date:** [2020 年 8 月 17 日午後 12:44 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/4 "2020-08-17T12:44:53Z")

</div>

> [@hawm](#):
>
> ソース内の `check_emails` および `can_check_emails?` メソッドを検索し、それをオーバーライドしてください。

ソースを更新すると、編集内容が消えてしまいます。これは良い方法ではありません。

---

<div class="post-metadata">

**Author:** ![hawm](https://avatars.discourse-cdn.com/v4/letter/h/f07891/32.png) [@hawm](https://meta.discourse.org/u/hawm)\
**Post date:** [2020 年 8 月 17 日午後 12:52 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/5 "2020-08-17T12:52:58Z")

</div>

はい、その通りです。😅 無意識のうちに、男性たちがそれをプラグインで実装するだろうと考えてしまいます。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2020 年 8 月 17 日午後 12:59 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/6 "2020-08-17T12:59:47Z")

</div>

完全に公開しないようにしてください。そうしないと、すべてのクローラーや、いったい誰に漏れるかわかりません！

---

<div class="post-metadata">

**Author:** ![brucewayne](https://avatars.discourse-cdn.com/v4/letter/b/d07c76/32.png) [@brucewayne](https://meta.discourse.org/u/brucewayne)\
**Post date:** [2020 年 8 月 17 日午後 1:04 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/7 "2020-08-17T13:04:08Z")

</div>

皆様、お手伝いいただきありがとうございます！  
ご指摘の通り、カスタムフィールドを作成するのが最善の解決策です。ゲイビン、ありがとう。 😉

私がすべてのメンバーのメールアドレスを表示する必要がある理由を以下に説明します。  
私が作業している Discourse フォーラムは、私の学校ネットワーク向けに設計されています。  
目的は、卒業生と非卒業生の両方のためのコミュニティを構築することです。  
したがって、メールアドレスを表示することは、有用な情報を共有するための良い方法です。

* * *

Hawn -  
単に好奇心から質問させてください。`can_check_emails` メソッドが格納されている `user_guardian.rb` ファイルをどのように修正すればよいでしょうか？

`.hbs` などのテンプレートファイルを plugin-outlet で修正できることは知っています。  
しかし、以下のスクリプトはテンプレート専用であり、`.rb` ファイルには適用できないようです。

```
<script type="text/x-handlebars" data-template-name="/connectors/PLUGIN-OUTLET-NAME/UNIQUE-NAME">

</script>

```

よろしくお願いいたします。

リチャード

---

<div class="post-metadata">

**Author:** ![brucewayne](https://avatars.discourse-cdn.com/v4/letter/b/d07c76/32.png) [@brucewayne](https://meta.discourse.org/u/brucewayne)\
**Post date:** [2020 年 8 月 17 日午後 1:05 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/8 "2020-08-17T13:05:53Z")

</div>

ロバートさん、

公開にはしたくありませんが、メンバーには見えるようにしたいんです。😉

---

<div class="post-metadata">

**Author:** ![hawm](https://avatars.discourse-cdn.com/v4/letter/h/f07891/32.png) [@hawm](https://meta.discourse.org/u/hawm)\
**Post date:** [2020 年 8 月 17 日午後 1:07 UTC](https://meta.discourse.org/t/how-to-display-user-email-for-all-registered-members/161136/9 "2020-08-17T13:07:26Z")

</div>

> [@Override existing Discourse methods in plugins](https://meta.discourse.org/t/tips-for-overriding-existing-discourse-methods-in-plugins/83389):
>
> I’ve been running into a bunch of instances recently of needing to override existing ruby methods from plugins, and thought I’d share my best practices here. Overriding an instance method class ::TopicQuery module BabbleDefaultResults def default\_results(options={}) super(options).where('archetype \<\> ?', Archetype.chat) end end prepend BabbleDefaultResults end Here I’m removing chat topics from an instance method which is returning a list of topics. The module name BabbleD…

プラグイン開発に関連するトピックをもっと読むと、簡単に実装できるかもしれません。
