Поддержка серверов

Rights::getOperations: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=498578

<?php 
//    /bitrix/modules/landing/lib/rights.phpRights::getOperations()
//    289:

    
protected static function getOperations($entityId$entityType)
    {
        
$operations = [];
        
$operationsDefault = [];
        
$wasChecked false;
        
$uid Manager::getUserId();
        
$extendedMode self::isExtendedMode();

        
// full access for admin
        
if (
            
self::$available &&
            !
self::isAdmin() &&
            
self::isFeatureOn() &&
            
self::exist()
        )
        {
            
$wasChecked true;
            
$entityIdFilter $entityId;
            if (
is_array($entityIdFilter))
            {
                
$entityIdFilter[] = 0;
            }
            else
            {
                
$entityIdFilter = [
                    
$entityIdFilter0
                
];
            }
            
$filter = [
                
'ENTITY_ID' => $entityIdFilter,
                
'=ENTITY_TYPE' => $entityType,
                
'USER_ACCESS.USER_ID' => $uid,
                
'!TASK_OPERATION.OPERATION.NAME' => false
            
];
            if (
$extendedMode)
            {
                
$filter['ROLE_ID'] = 0;
            }
            else
            {
                
$filter['>ROLE_ID'] = 0;
            }
            
$res RightsTable::getList(
                [
                    
'select' => [
                        
'ENTITY_ID',
                        
'OPERATION_NAME' => 'TASK_OPERATION.OPERATION.NAME'
                    
],
                    
'filter' => $filter
                
]
            );
            while (
$row $res->fetch())
            {
                if (
$row['ENTITY_ID'] == 0)
                {
                    
$operationsDefault[] = substr($row['OPERATION_NAME'], 8);
                    continue;
                }
                if (!isset(
$operations[$row['ENTITY_ID']]))
                {
                    
$operations[$row['ENTITY_ID']] = array();
                }
                
$operations[$row['ENTITY_ID']][] = substr($row['OPERATION_NAME'], 8);
                
$operations[$row['ENTITY_ID']] = array_unique($operations[$row['ENTITY_ID']]);
            }
        }

        
// set full rights, if rights are empty
        
foreach ((array) $entityId as $id)
        {
            if (!isset(
$operations[$id]))
            {
                if (
$wasChecked && !$extendedMode)
                {
                    
$operations[$id] = !empty($operationsDefault)
                        ? 
$operationsDefault
                        
: [self::ACCESS_TYPES['denied']];
                }
                else
                {
                    
$operations[$id] = array_values(self::ACCESS_TYPES);
                }
            }
        }

        return 
is_array($entityId)
                ? 
$operations
                
$operations[$entityId];
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение