Расширенные права в инфоблоках. Примеры настройки и использования. Смирнов Максим Ведущий программист

advertisement
Расширенные права в инфоблоках.
Примеры настройки и использования.
Смирнов Максим
Ведущий программист
«1С-Битрикс»
Расширенные права
Права для элементов
Права для разделов
По различным признакам:
• Принадлежность группе
• Индивидуально пользователю
• Положение пользователя в структуре
компании
• Авторство
Основная идея
Имеется общесистемный набор «меток».
Пользователю назначается подмножество М1.
Элементу – подмножество М2.
Их пересечение дает разрешение на выполнение
набора операций.
Иллюстрация основной идеи
Пользователь
Элемент или раздел
М1
М2
Реализация основной идеи
Набор меток пользователя
Набор меток пользователя
Предоставляется провайдерами
Класс CAccess
Событие OnAuthProvidersBuildList
Кешируется в базе данных
Таблица b_user_access
Обновляется CAccess::UpdateCodes();
Набор операций
Набор операций
Уровни доступа к модулю Инфоблоков
Системные совместимы с «буквами».
Можно настроить набор операций.
Операции проверяются:
при выполнении «админки»
в компонентах.
Производительность
Уровни доступа развернуты:
Это означает, что для каждого элемента и
раздела хранятся не только его права,
но и уровни доступа родителей.
Операции «чтения» денормализованы:
Это позволяет сократить количество
присоединяемых таблиц в запросах.
Чтение в «админке»
В административном разделе:
• Настройки -> Пользователи -> Уровни доступа
• В фильтре устанавливаем «Модуль» = «Инфоблоки»
• Открываем уровень доступа «Чтение»
• Нажимаем «Копировать»
• Далее на второй вкладке ставим галочку
«iblock_admin_display»
• Сохраняем.
Чтение в «админке»
Чтение в «админке»
Теперь в настройках инфоблока:
• Включаем режим расширенных прав.
• Для выбранных пользователей или групп добавляем
созданный уровень доступа.
Данный уровень доступа не имеет значения
для разделов и элементов.
Разделение по «песочницам»
Заводим группу «Организаторы конкурсов»
В настройках раздела «Конкурсы» разрешаем «Добавление»
Добавляем «Авторов» с правом «Изменение»
Разделение по песочницам
Разделение по «песочницам»
Таким образом каждый из пользователей может работать
только со своими элементами.
Кроме того, автор может передать права «редактору».
А редактор в свою очередь может «отобрать» права
на редактирование у автора.
Что важно знать разработчикам
Классы:
Для инфоблока – CIBlockRights
Для раздела – CIBlockSectionRights
Для элемента - CIBlockElementRights
Для проверки прав в компонентах
необходимо использовать метод
UserHasRightTo соответствующего класса.
Спасибо за внимание!
Вопросы?
Смирнов Максим
e-mail: max@1c-bitrix.ru
twitter: @qMBQx8GH
Download