В чем тогда смысл блокировки постов? Его нет. Или я его не нашел, следовательно, эта функция либо устарела, либо неисправна, либо по крайней мере запутанна.

В тексте четко сказано: «сотрудник заблокировал этот пост для редактирования». Если блокировка имеет совершенно другую цель, чем защита поста/темы от редактирования автором (OP), то этот текст следует изменить.
Заблокированные посты НЕ должны быть доступны для редактирования пользователями, не являющимися сотрудниками, несмотря на настройку, позволяющую пользователям с высоким уровнем доверия редактировать посты (что нам в целом нравится, но не для заблокированных постов, конечно).
Как следует из кода ниже, «блокировка» поста в настоящее время означает, что редактировать пост больше не может ТОЛЬКО автор (OP) этого поста. Пользователи TL3, TL4 (и сотрудники) по-прежнему могут редактировать заблокированный пост (если это разрешено в настройках).
Это сильно ограничивает функцию блокировки крайне узким случаем использования.
Как мне защитить очень важное официальное объявление администратора от того, чтобы какой-то один недобросовестный пользователь TL3 не изменил его на «Это пост Микки Мауса», не присвоил ему неверные теги и не переместил в нерелевантную категорию, но при этом хотел бы, чтобы пользователи TL3/TL4 могли редактировать посты в целом?
«Заблокированный» должен означать «заблокированный» (например, недоступный для редактирования) для всех, кроме сотрудников.
def can_edit_topic?(topic)
return false if Discourse.static_doc_topic_ids.include?(topic.id) && !is_admin?
return false unless can_see?(topic)
return true if is_admin?
return true if is_moderator? && can_create_post?(topic)
# нельзя редактировать темы в защищенных категориях, где у вас нет прав на создание тем
# за исключением небольшого крайнего случая, когда тема не имеет категории, и вы пытаетесь
# исправить это, но создание тем без категории отключено
if (
SiteSetting.allow_uncategorized_topics ||
topic.category_id != SiteSetting.uncategorized_category_id
)
return false if !can_create_topic_on_category?(topic.category)
end
# Пользователи TL4 могут редактировать архивированные темы, но не могут редактировать личные сообщения
return true if (
SiteSetting.trusted_users_can_edit_others? &&
topic.archived &&
!topic.private_message? &&
user.has_trust_level?(TrustLevel[4]) &&
can_create_post?(topic)
)
# Пользователи TL3 не могут редактировать архивированные темы и личные сообщения
return true if (
SiteSetting.trusted_users_can_edit_others? &&
!topic.archived &&
!topic.private_message? &&
user.has_trust_level?(TrustLevel[3]) &&
can_create_post?(topic)
)
return false if topic.archived
is_my_own?(topic) &&
!topic.edit_time_limit_expired?(user) &&
**!Post.where(topic_id: topic.id, post_number: 1).where.not(locked_by_id: nil).exists**
end