Заметки
Как проверять доступ к файлу Диска без изменения прав
При разборе доступа важно не изменить его самим проверочным запросом. disk.folder.shareToUser назначает права на папку, а disk.file.getExternalLink получает публичную ссылку. Ни один из этих вызовов не выдаёт список всех пользователей с доступом к файлу.
Сначала определить, какой файл проверяется
Запишите ID объекта Диска и путь к нему. ID обычного файла CFile, объекта Диска и прикрепления — разные идентификаторы. Если файл открыт из задачи или CRM, зафиксируйте также эту привязку.
Проверка в интерфейсе
- Откройте права самого объекта и родительской папки. Отдельно учтите доступ через группы и подразделения.
- Проверьте, существует ли общедоступная ссылка, не создавая новую ради проверки.
- Проверьте доступ к записи, к которой прикреплён файл: задаче, сообщению или элементу CRM.
- Повторите открытие под конкретным сотрудником. Проверку публичной ссылки сделайте в отдельной сессии без авторизации.
Граница такого обследования
Успешный REST-запрос от администратора показывает возможности этой авторизации, а не доступ всех сотрудников. Отказ одного пользователя тоже не доказывает, что файл закрыт для остальных.
Для массового отчёта нужен отдельный сценарий чтения прав, наследования и состава групп. Эта заметка не предлагает универсального REST-метода полного ACL-аудита. Для различий файловых ссылок см. разбор ссылок из поля «Файл».