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

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

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

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

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

Хотя я уже не согласен с решением отдавать приоритет :two:, здесь есть пограничные случаи, которые, на мой взгляд, явно нежелательны и граничат с #contribute:баг. Самый значительный из найденных нами: модераторы в настоящее время могут читать каждое сообщение, содержащее ссылку на внешнее изображение, потому что @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 лайков