Права доступа на практике - инфоблоки, заказы, файлы
Права доступа - подтема на 19 вопросов из собранных. Здесь собраны решения по выдаче прав на данные и файлы.
Что общего у этих задач
Уровней доступа два, и они не связаны. Первый - файлы и разделы структуры сайта, права на них наследуются по дереву каталогов. Второй - модули и их данные. Полный доступ к папке каталога не даёт ни одного права на модуль торгового каталога, и наоборот.
Права выдаются группам, а не людям. Пользователь входит в несколько групп, права складываются, и побеждает самое разрешающее. Ограничить человека, добавив его в урезанную группу, невозможно: итог определяет самая широкая из его групп.
Права на данные модуля живут в настройках самого модуля. У инфоблока свой список групп с уровнями доступа, у заказов - свои роли, у диска - свои. Общей таблицы «кто что может» в платформе нет, и проверять приходится в каждом месте отдельно.
Решения подтемы
- Права на инфоблок и заказы: выдача из интерфейса и кодом - уровни доступа инфоблока, права на элементы, доступ только к своим заказам.
- Права на файлы и папки: файловая система и права структуры - владелец и режим на диске, файл прав раздела, проверка доступа.
- Роли менеджеров: что видит и что может в админке - права групп на модули, роль контента и роль заказов.
- Права в своём модуле: уровни, проверка, интерфейс настроек - объявление уровней, проверка в коде, отбор записей.
- Права не применяются: разбор причин - максимум по группам, расширенные права, уровень выдачи, файлы.
- Группы пользователей: назначение, срок действия, автоматизация - сумма прав, перезапись списка, членство на срок, автоназначение.
- Права доступа целиком: уровни, режимы, наследование, проверки - четыре системы прав, режимы инфоблока, проверки в коде и их обход.
Частые вопросы
Почему изменение прав на инфоблок не сохраняется?
Права правятся не там: у инфоблока свой список групп на вкладке доступа, и общие права модуля его не заменяют. Второй случай - расширенное управление правами, при котором действует другой механизм.
Можно ли дать доступ только к своим заказам?
Да, ролью с ограничением по владельцу. В модуле продаж роли и права описываются отдельно от общих прав модулей.
Как ограничить доступ к файлам инфоблока?
Файлы лежат в открытой папке загрузок и доступны по прямой ссылке всем. Закрытая раздача требует своего скрипта, который проверяет права перед отдачей файла.
Почему пользователь не видит раздел админки?
У его групп нет права на соответствующий модуль. Доступ к разделу структуры сайта и доступ к модулю - разные уровни, и админка проверяет второй.
Связанные темы
- Пользователи, группы и права доступа - устройство прав целиком
- Авторизация и сессии - вход на сайт и поведение сессии
- Основы безопасности - что защищают права
- Раздел Пользователи и права