Модераторы читают сообщения в журналах действий персонала

У нас возникла проблема с конфиденциальностью: модераторы получают доступ к сообщениям, к которым не должны иметь доступа.

Насколько я понимаю, в Discourse здесь пересекаются две цели проектирования:

  1. Модераторы не освобождаются от проверок прав и могут читать только те сообщения, к которым они приглашены.
  2. Когда модераторы используют свои полномочия, любые их действия логируются и могут быть проверены любым сотрудником.

Иногда эти цели вступают в конфликт, например, когда модератор редактирует пост другого пользователя в сообщении, где он участвует. В таких случаях Discourse отдает приоритет :two:: отредактированный пост пользователя раскрывается всем сотрудникам в журналах действий персонала.

Хотя я уже не согласен с решением отдавать приоритет :two:, это приводит к пограничным случаям, которые, на мой взгляд, определенно нежелательны и граничат с #багом. Самый серьезный из найденных нами: модераторы в настоящее время могут читать каждое сообщение, содержащее ссылку на внешнее изображение, потому что @system загружает изображение, редактирует пост, и это добавляется в журналы действий персонала.

Я не уверен, какой путь действий здесь правильный. Сделать доступ к журналам действий персонала для модераторов настраиваемым? Запретить просмотр поста для записей в журналах действий персонала от @system? Сделать функцию просмотра поста в целом соблюдающей права доступа к постам?

В любом случае, я надеюсь, что здесь что-то изменится, потому что в настоящее время мы вынуждены блокировать доступ к API журналов действий персонала на уровне Nginx.

9 лайков

Я не думаю, что такие правки должны регистрироваться.

@david, не могли бы вы убедиться, что мы не регистрируем эти очень специфические правки от пользователя @system? (и удалите существующие записи)

10 лайков

Это реализовано по адресу FIX: Do not log 'pull_hotlinked_images' edits in the staff action log · discourse/discourse@67a9894 · GitHub.

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

Автоматизировать это непросто — у нас нет способа определить, относятся ли существующие записи к «подтягиванию внешних изображений» или были внесены пользователем системы через API. @fefrei, если вы хотите удалить старые записи обо всех системных правках на вашем сайте, вы можете выполнить что-то вроде этого в консоли:

UserHistory.where(action: UserHistory.actions[:post_edit], acting_user: Discourse.system_user).destroy_all
9 лайков

Отлично, спасибо! :heart:

5 лайков