Как прописать права для инфоблока
2 ноября 2015, 15:42
Задача:
Изменить права информационных блоков
Дано:
1 пользовательская группа
3 информационных блока
Решение:
//Подключаем API битрикса require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); use \Bitrix\Main\Loader; if(Loader::includeModule('iblock')){ $groupCode = 'weeks_editors'; // символьный код группы редакторов $groupID = CGroup::GetIDByCode($groupCode); // получаем ID группы // список символьных кодов инфоблоков для которых нам требуется изменить права $arIBlockCodes = array( 'candles', 'holidays', 'weekly_parts' ); $actionPermission = "W"; // права для группы на изменение / запись foreach($arIBlockCodes as $codeIBlock){ $arIBlockID[] = CIBlockWrapper::GetIdByCode($codeIBlock,SITE_ID); // конвертим символьный код инфоблока в его ID } foreach($arIBlockID as $iblockID) { $arPermissions = CIBlock::GetGroupPermissions($iblockID); // поллучаем уже существующие // права чтбы не затереть их при записи новых прав $arPermissions[$groupID]= $actionPermission; // права для группы на изменение / запись CIBlock::SetPermission($iblockID, $arPermissions); // выставляем права на инфоблок } $info[] = 'Успешно: [3] Права '.$actionPermission.' прописаны для инфоблоков('.implode(', ',$arIBlockID).')'; }else{ $errors[] = 'Ошибка: [1] Модуль информационных блоков не подключен'; }
Твитнуть
Поделиться
Поделиться
Популярное