# Раздел «Недавно использованные устройства» защищён «canCheckEmails», что кажется неожиданным

**URL:** https://meta.discourse.org/t/recently-used-devices-section-is-guarded-by-cancheckemails-which-seems-unexpected/134871
**Category:** Development
**Created:** [02.Декабрь.2019 15:08:23 UTC](https://meta.discourse.org/t/recently-used-devices-section-is-guarded-by-cancheckemails-which-seems-unexpected/134871 "2019-12-02T15:08:23Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Hooksmith](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hooksmith/32/142826_2.png) [@Hooksmith](https://meta.discourse.org/u/Hooksmith)
#### Post date: [02.Декабрь.2019 15:08:23 UTC](https://meta.discourse.org/t/recently-used-devices-section-is-guarded-by-cancheckemails-which-seems-unexpected/134871/1 "2019-12-02T15:08:23Z")

</div>

Как видно здесь:

> <https://github.com/discourse/discourse/blob/4eb54f08b29a13b2a5653a4df5050c1ca07d2190/app/assets/javascripts/discourse/templates/preferences/account.hbs#L165>

Видимость этого раздела в Настройки \> Аккаунт:

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

Кажется, зависит от условия, могут ли пользователи проверять свою собственную почту. Для меня как разработчика плагина это неожиданное поведение: когда я переопределяю значение `can_check_email` для этого пользователя, скрывается также раздел «Недавно использованные устройства», хотя, казалось бы, это не имеет ничего общего с электронной почтой.

* * *

Сценарий использования здесь следующий: на нашем сайте включен SSO, и я бы предпочел, чтобы метка электронной почты вообще не отображалась, так как это сбивает с толку наших пользователей из-за способа интеграции с нашим основным сайтом, а также вызывает несогласованность в отображении ПИД (персональных идентифицируемых данных) на наших разных сайтах. Поэтому я хочу полностью скрыть метку электронной почты из раздела Настройки \> Аккаунт. Однако я не хочу скрывать раздел «Недавно использованные устройства», так как эта информация полезна для пользователей и администраторов, но сделать это невозможно без переопределения шаблона или использования CSS-хаков, поскольку и метка электронной почты, и раздел с недавно использованными устройствами используют одну и ту же проверку.

Кажется, было бы логичнее заменить эту проверку на что-то вроде `{{#if canCheckAuthTokens}}`. (Изначально это можно было бы алиасить от `canCheckEmails` для быстрого исправления, чтобы разработчики плагинов могли различать эти два значения при их переопределении).

* * *

Если предполагалось, что этот раздел скрывается через `canCheckEmails`, мог бы кто-нибудь объяснить семантику этого решения и почему это имеет смысл?

Большое спасибо!

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [02.Декабрь.2019 15:54:16 UTC](https://meta.discourse.org/t/recently-used-devices-section-is-guarded-by-cancheckemails-which-seems-unexpected/134871/2 "2019-12-02T15:54:16Z")

</div>

Я думаю, что `canCheckEmails` здесь использовался как сокращение, поскольку разрешения одинаковы.

> [@Hooksmith](#):
>
> Кажется, было бы логичнее заменить проверку guard на что-то вроде `{{#if canCheckAuthTokens}}`. (Изначально его можно алиасить от `canCheckEmails` для быстрого исправления, чтобы разработчики плагинов могли различать их при переопределении этих значений)

Мне кажется, это хороший подход — если у вас есть время реализовать это, буду рад увидеть pull-запрос (#pr-welcome).
