Задача следующая: имеется страница закрытая от внешнего доступа с данными выведенными из инфоблока, доступ к данным должен быть разделен на 2 группы: Менеджер 1 — Изменение данных, Менеджер 2 — Чтение данных.
Для реализации доступа к данным инфоблока, сначала настроим административную часть, создаем группы пользователей: Настройки -> Пользователи -> Группы пользователей
Далее нужным пользователям задаем группу к которой он должен принадлежать.
Далее в заходим в настройки инфоблока во вкладку Доступ. Выбираем Расширеный доступ и добавляем права доступа на группы. (Чтение, Изменение)
Далее выполняем программную реализацию.
В файле component.php в GetList добавляем проверку прав доступа элемента.
$resS = CIBlockElement::GetList(['sort'=>'asc'], $arFilterS, false, false, $arSelectS); while($obS = $resS->Fetch()) { // проверка прав доступа элемента $ob = new CIBlockElementRights($arParams['IBLOCK_ID'], $obS['ID']); // создаём объект прав и инициализируем нашим элементом $obS['RIGHTS'] = CIBlockElementRights::UserHasRightTo($arParams['IBLOCK_ID'], $obS['ID'], 'element_edit'); $arResult['ITEM'][] = $obS; }
element_edit — операция определяющая уровень доступа на редактирование элемента
В файле component.php добавляем условие, на скрытие нужного функционала при доступе в режиме чтения.
<?if($arShops['RIGHTS']):?> <div class="i_button">Добавить</div> <?endif;?>