Подскажите, пожалуйста, способ узнать (или проверить) права пользователя на инфоблок при расширенном управлении правами. Про CIBlockSectionRights::UserHasRightTo и CIBlockElementRights::UserHasRightTo знаю, но получить с их помощью права на инфоблок для пользователя не удается. Делаю так
Антон, спасибо, действительно возвращается true/false. Всегда пользовался die(var_dump($var));, а последнее время стал использовать print '<pre>'.print_r(CIBlockSectionRights::UserHasRightTo(54, 0, "R";), true).'</pre>'; в силу удобства восприятия, ну и, конечно, упустил из виду "ограниченность" нового метода.
всегда выдает bool(true), для пользователя всегда выдает bool(false) даже если для него в инфоблоке выставляю полный доступ. Повторюсь, используется расширенное управление правами
Прикол в том, что даже var_dump(CIBlockSectionRights::UserHasRightTo(54, 0, "D";)); для пользователя выдает bool(false). Кэш через админку чистил. Беда.
Всё разобрался. При расширенном управлении правами передавать в $permission нужно не символьное значение уровня, как "R", а наименование операции. То есть чтобы проверить права на изменения на уровне инфоблока, используем
Помимо этого можно получить массив всех разрешенных пользователю операций. Для этого нужно передать в функцию UserHasRightTo четвертый параметр $flags больше нуля. Т.е. делаем так