- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/Access/Permission/Catalog/IblockCatalogPermissionStepper.php
- Класс: BitrixCatalogAccessPermissionCatalogIblockCatalogPermissionStepper
- Вызов: IblockCatalogPermissionStepper::execute
public function execute(array &$option): bool
{
if (!Loader::includeModule('iblock'))
{
return self::FINISH_EXECUTION;
}
$emptyDepartmentTypeFirst = serialize([]);
$emptyDepartmentTypeSecond = serialize([0]);
$externalTypes = UserTable::getExternalUserTypes();
$externalTypes[] = null;
$filter = [
'!=UF_DEPARTMENT' => [null, $emptyDepartmentTypeFirst, $emptyDepartmentTypeSecond],
'!=EXTERNAL_AUTH_ID' => $externalTypes,
];
if (isset($option['lastId']))
{
$filter['>ID'] = (int)$option['lastId'];
}
$userData = UserTable::getList([
'filter' => $filter,
'select' => ['ID'],
'limit' => self::PORTION,
])
->fetchAll()
;
$userIds = array_column($userData, 'ID');
if ($userIds)
{
$this->updateIblockAccess($userIds);
if (count($userIds) === self::PORTION)
{
$option['lastId'] = array_pop($userIds);
return self::CONTINUE_EXECUTION;
}
}
return self::FINISH_EXECUTION;
}