amgreen
@amgreen
PHP Backend/Symfony

Показать пользователю только его записи в инфоблоке в админке битрикса?

Появилась задача выводить пользователям только их собственные записи в инфоблоке в админке битрикса.
В службе поддержки сказали, что такого коробочного решения нет.

Посмотрите вариант реализации:
1) Сделал копию файла отображения инфоблока из /bitrix/modules/iblock/admin/iblock_list_admin.php
в произвольное место
/bitrix/components/modules/iblock_list_admin.php

2) В файле /bitrix/admin/iblock_list_admin.php внес следующую правку:
(в зависимости от номера информационного блока подключаю кастомный файл)

if($_REQUEST['IBLOCK_ID'] == 223) {
  require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/components/modules/iblock_list_admin.php");
} else {
  require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/admin/iblock_list_admin.php");
}

3) В кастомном файле /bitrix/components/modules/iblock_list_admin.php

Перед строчкой
$rsData = CIBlockSection::GetMixedList($arOrder, $arFilter, false, ['ID', 'IBLOCK_ID']);

Добавил проверку на группу пользователя и добавил фильтр по изменившему.

if (!in_array(22, $USER->GetUserGroupArray())) {
    $arFilter["MODIFIED_BY"] = $USER->GetID();
}
  • Вопрос задан
  • 305 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы