# Рекурсивная имперсонация

**URL:** https://meta.discourse.org/t/recursive-impersonation/202522
**Category:** Support
**Tags:** impersonate
**Created:** [03.Сентябрь.2021 10:27:47 UTC](https://meta.discourse.org/t/recursive-impersonation/202522 "2021-09-03T10:27:47Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![bloomingcrystals](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bloomingcrystals/32/233044_2.png) [@bloomingcrystals](https://meta.discourse.org/u/bloomingcrystals)
#### Post date: [03.Сентябрь.2021 10:27:47 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/1 "2021-09-03T10:27:47Z")

</div>

Всем привет,

Я настроил сервер Discourse для клиента и дал ему возможность создать тестовые аккаунты, которые, как я знал, в конечном итоге станут ненужными после внедрения SSO. Я всё настроил, кастомизировал тему и написал описания для всех категорий, используя свой административный аккаунт A.

После настройки [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true) (как единственного варианта регистрации) я вошёл в систему с помощью своего административного аккаунта из другой системы и предоставил этому аккаунту B права администратора. С этого момента я работал исключительно под аккаунтом B, так как больше не мог войти как A.

Затем я случайно наткнулся на кнопку «Имперсонация» и заинтересовался. Казалось, что мне не нужно удалять аккаунт A, если я смогу просто имперсонировать его для редактирования описаний категорий, FAQ и т. д. Так что я использовал B, чтобы имперсонировать A, провёл несколько тестовых правок, и всё работало отлично.

Пока я не заинтересовался, могу ли я также имперсонировать бота форума. Поэтому, всё ещё находясь в режиме имперсонации A (который, кстати, был администратором), я решил имперсонировать C. Это сработало, отлично, так что я аккуратно вышел из системы и занялся своими делами.

Теперь, когда я вхожу как B, я больше не могу имперсонировать A или C (с другими пользователями всё в порядке). На месте, где должна быть кнопка, просто написано: «Администраторы и модераторы не могут быть удалены».

В логах указано: «B имперсонировал A» и «A имперсонировал C».

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

Заранее спасибо,  
Фло

---

<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: [03.Сентябрь.2021 10:50:18 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/2 "2021-09-03T10:50:18Z")

</div>

Привет, Фло, добро пожаловать в сообщество 👋🏻

Кнопка «Имперсонация» всё ещё на месте, и я работаю на последней сборке.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [03.Сентябрь.2021 10:58:55 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/3 "2021-09-03T10:58:55Z")

</div>

Возможно ли войти в учётную запись Admin A, используя `/users/admin-login` для входа через электронную почту? Это может помочь развязать узел?

---

<div class="post-metadata">

### Author: ![bloomingcrystals](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bloomingcrystals/32/233044_2.png) [@bloomingcrystals](https://meta.discourse.org/u/bloomingcrystals)
#### Post date: [03.Сентябрь.2021 11:18:41 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/4 "2021-09-03T11:18:41Z")

</div>

Привет, Гэвин,

Как я могу узнать, какая у меня версия, через интерфейс? На панели управления указано, что последнее обновление было 3 августа, но я не вижу номера версии.

Спасибо

---

<div class="post-metadata">

### Author: ![bloomingcrystals](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bloomingcrystals/32/233044_2.png) [@bloomingcrystals](https://meta.discourse.org/u/bloomingcrystals)
#### Post date: [03.Сентябрь.2021 11:22:04 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/5 "2021-09-03T11:22:04Z")

</div>

Привет, JammyDoger,

Я не знал, что этот маршрут существует! Это, безусловно, решает проблему обхода [DiscourseConnect](https://meta.discourse.org/t/13045?silent=true), хотя мне пока не удалось распутать этот узел, так сказать. Кнопки «Принять роль» отображаются для пользователя A, поэтому я предполагаю, что в данный момент он не impersonирует никого?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [03.Сентябрь.2021 11:23:34 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/6 "2021-09-03T11:23:34Z")

</div>

Вы можете просмотреть исходный код. Его несложно найти.

Перейдите по адресу /u/admin-login и измените email аккаунта администратора на тот, который позволяет вход через SSO. Вы также можете изменить адрес через консоль Rails.

---

<div class="post-metadata">

### Author: ![bloomingcrystals](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bloomingcrystals/32/233044_2.png) [@bloomingcrystals](https://meta.discourse.org/u/bloomingcrystals)
#### Post date: [03.Сентябрь.2021 11:33:42 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/7 "2021-09-03T11:33:42Z")

</div>

Привет, Джей,

Я просто ошибочно предположил, что если ты намеренно скрываешь информацию от администраторов, то она не будет публичной. Остаётся версия 2.8.0.beta4.

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

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [03.Сентябрь.2021 11:34:04 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/8 "2021-09-03T11:34:04Z")

</div>

Теперь выйдите из аккаунта Admin A, чтобы убедиться, что он сброшен до роли администратора и не выдаёт себя за другого пользователя.

> [@jennlevbird](#):
>
> Пользователь с правами администратора больше не вошёл в систему как администратор. Чтобы вернуться к учётной записи администратора, необходимо выйти из системы и войти снова. Для выхода используйте кнопку «Выйти» в меню пользователя. Закрытие веб-браузера не приводит к выходу из системы сессии подменяемого пользователя.

(и также выйдите из аккаунта Admin B, на всякий случай 🙂)

---

<div class="post-metadata">

### Author: ![bloomingcrystals](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bloomingcrystals/32/233044_2.png) [@bloomingcrystals](https://meta.discourse.org/u/bloomingcrystals)
#### Post date: [03.Сентябрь.2021 11:37:41 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/9 "2021-09-03T11:37:41Z")

</div>

Привет, JammyDodger,

Да, я вышел из обоих аккаунтов и снова зашёл в B, но безрезультатно 🙃

---

<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: [03.Сентябрь.2021 11:51:43 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/10 "2021-09-03T11:51:43Z")

</div>

Ваш выглядит так?

 ![image](https://global.discourse-cdn.com/meta/original/3X/d/e/de0e9522e0e3ae72c980803dfef04d72c0885973.png)

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [03.Сентябрь.2021 11:54:38 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/11 "2021-09-03T11:54:38Z")

</div>

Вот и всё, что я знаю — мой запас знаний совсем невелик. 🙂 Я не был уверен, могут ли администраторы выдавать себя за других администраторов (мне казалось, что это доступно только разработчикам). Вы убрали Админа B из этого списка?

> [@riking](#):
>
> Вы можете выдавать себя за администратора только если находитесь в списке DEVELOPER\_EMAILS.

Надеюсь, кто-то с более глубокими знаниями сможет добавить что-то более существенное. 🙂🤞

---

<div class="post-metadata">

### Author: ![bloomingcrystals](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bloomingcrystals/32/233044_2.png) [@bloomingcrystals](https://meta.discourse.org/u/bloomingcrystals)
#### Post date: [03.Сентябрь.2021 11:55:46 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/12 "2021-09-03T11:55:46Z")

</div>

Привет, Гэвин,

Нет, я не вижу раздела «Версия».

 ![Screenshot 2021-09-03 at 13.54.35](https://global.discourse-cdn.com/meta/original/3X/6/9/695a44724daf7f14e16c64fcdb1ec9459a867349.png)

---

<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: [03.Сентябрь.2021 11:57:02 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/13 "2021-09-03T11:57:02Z")

</div>

Значит, ваш аккаунт не является аккаунтом администратора.

Я рекомендую добавить ваш аккаунт B в раздел Dev в файле app.yml, как упомянул @JammyDodger.

```plaintext
  ## TODO: Список email-адресов, разделенных запятыми, которые будут назначены администраторами и разработчиками
  ## при первой регистрации, например 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'gavin@truecode.co.za'

```

---

<div class="post-metadata">

### Author: ![bloomingcrystals](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bloomingcrystals/32/233044_2.png) [@bloomingcrystals](https://meta.discourse.org/u/bloomingcrystals)
#### Post date: [03.Сентябрь.2021 12:27:39 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/14 "2021-09-03T12:27:39Z")

</div>

Кажется, вы всё-таки были на правильном пути, спасибо!  
Ваш вклад был очень ценен ˆˆ

---

<div class="post-metadata">

### Author: ![bloomingcrystals](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bloomingcrystals/32/233044_2.png) [@bloomingcrystals](https://meta.discourse.org/u/bloomingcrystals)
#### Post date: [03.Сентябрь.2021 12:30:20 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/15 "2021-09-03T12:30:20Z")

</div>

Сработало, кнопки «Притвориться пользователем» вернулись! Спасибо, Гэвин ˆˆ

Хотя я всё ещё не вижу раздел «Версия» на панели управления, и до сих пор непонятно, почему я вообще мог притвориться кем-то другим.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [03.Октябрь.2021 12:30:28 UTC](https://meta.discourse.org/t/recursive-impersonation/202522/16 "2021-10-03T12:30:28Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
