Я протестировал функцию experimental_impersonation, и она выглядит отлично! Она делает именно то, что обещает, и я рад, что мне не приходится проходить через лишние шаги: выходить из системы, а затем снова входить под своей учётной записью.
@moin указал в 🇩🇪 Fehler in der Deutschen Übersetzung? Hier melden! - #108 by Moin, что термины «impersonate» и «stop impersonating» плохо переводятся на немецкий язык. Трудно подобрать слова, которые точно передают весь смысл действия. Возможно, такая проблема существует и в других языках, но я это не проверял.
Интересно, не стоит ли нам (каламбур намерен) перейти к более простым формулировкам, например: Переключиться на @user_to_impersonate на странице администрирования пользователя, а затем Вернуться к @user_who_impersonated на кнопке для прекращения имперсонации. Это, вероятно, упростит перевод и сделает интерфейс понятнее для носителей других языков.
Сегодняшнее тестирование также выявило несколько других проблем:
- Мне кажется, что для имперсонации нужно добавить модальное окно, аналогичное тем, что используются при удалении или слиянии. Это позволит отменить действие в случае случайного нажатия, а также проинформирует администратора о том, что будет выполнено, что действие будет зафиксировано в логах, и что можно будет вернуться без повторного входа в систему.
- Факт имперсонации и возврата фиксируется в журнале действий персонала, но действия, выполненные во время имперсонации, не логируются. Учитывая, насколько эта функция подвержена злоупотреблениям — как случайным, так и умышленным —我觉得 логировать такие действия тоже имеет смысл.
- Старая проблема всё ещё сохраняется: при имперсонации пользователя обновляется дата его последнего посещения в списке пользователей и в панели администратора, а также (предположительно) в плагине «Кто онлайн», если он установлен.