← К заметкам

Заметки

Как проверять доступ к файлу Диска без изменения прав

При разборе доступа важно не изменить его самим проверочным запросом. disk.folder.shareToUser назначает права на папку, а disk.file.getExternalLink получает публичную ссылку. Ни один из этих вызовов не выдаёт список всех пользователей с доступом к файлу.

Сначала определить, какой файл проверяется

Запишите ID объекта Диска и путь к нему. ID обычного файла CFile, объекта Диска и прикрепления — разные идентификаторы. Если файл открыт из задачи или CRM, зафиксируйте также эту привязку.

Проверка в интерфейсе

  1. Откройте права самого объекта и родительской папки. Отдельно учтите доступ через группы и подразделения.
  2. Проверьте, существует ли общедоступная ссылка, не создавая новую ради проверки.
  3. Проверьте доступ к записи, к которой прикреплён файл: задаче, сообщению или элементу CRM.
  4. Повторите открытие под конкретным сотрудником. Проверку публичной ссылки сделайте в отдельной сессии без авторизации.

Граница такого обследования

Успешный REST-запрос от администратора показывает возможности этой авторизации, а не доступ всех сотрудников. Отказ одного пользователя тоже не доказывает, что файл закрыт для остальных.

Для массового отчёта нужен отдельный сценарий чтения прав, наследования и состава групп. Эта заметка не предлагает универсального REST-метода полного ACL-аудита. Для различий файловых ссылок см. разбор ссылок из поля «Файл».

Источники