delete_forbidden_because_staff: “Администраторы и модераторы не могут быть удалены.”
Я понимаю, что это полезно, так как модераторов можно удалять. Однако у меня сложилось впечатление, что при этой правке что-то было упущено, что и ввело меня в заблуждение сегодня.
Я — модератор, но не администратор, и тем не менее в примечании было написано: «Администраторы не могут быть удалены».
После проверки кода я, кажется, понял, почему это происходит: если пользователя нельзя удалить, это может быть по двум причинам:
Пользователь является администратором.
У пользователя есть посты, старше установленного срока.
Настоящая причина, по которой я не мог удалить свою учётную запись модератора, — это пункт [2], но отображается пункт [1], потому что, хотя модераторы были исключены из текста предупреждения, в коде всё ещё проверяется staff вместо admin.
Да, я могу воспроизвести это на своём тестовом сайте. Как только я удаляю посты моей тестовой учётной записи модератора, сообщение «администраторов нельзя удалить» заменяется на кнопку удаления. Спасибо за сообщение, Moin
Для уточнения: пользователя, который не является модератором, нельзя удалить, и причина, указанная ниже, верна. Баг заключается в том, что отображается неверная причина, когда пользователь является модератором.
Пользователей нельзя удалить, если у них есть публикации. Удалите все публикации перед попыткой удаления пользователя. (Публикации старше 365 дней удалить нельзя.)
Администраторы тоже видят неверную причину. Дело не в том, кто смотрит страницу администратора пользователя, а в том, какой статус имеет пользователь, которого вы просматриваете.
Да, я именно это имел в виду, но неправильно построил предложение! Думаю, теперь всё исправил.
Всё это, конечно, так… но меня удивляет, почему вообще можно удалять модераторов. Мне кажется, логичнее сначала понизить пользователя в правах, а уже потом удалять, и я всегда так делал, даже не задумываясь об интерфейсе.