@Satir01

Почему IsAuthorized не работает?

Подскажите, пожалуйста, почему собственно IsAuthorized не работает в инфоблоке, а вне инфоблока все ок?
Создал инфоблок, для разрешения только авторизованным пользователям скачивать файл и разместил код следующего содержания:
<?foreach($arResult["ITEMS"] as $arItem):?>
<div> 
   <?if(CUser::IsAuthorized()):?> 
    <ul>
      <li><a href="<?=$arItem["PROPERTIES"]["ATT_FILE"]["VALUE"]?>">Скачать в PDF</a></li>
     
      <li><a href="<?=$arItem["PROPERTIES"]["ATT_COMMENT"]["VALUE"]?>">Комментировать</a></li>
     </ul>
   <?else:?> 
    <ul> 
      <li>
       <a>
        <span>Скачать в PDF</span>
        <span>Скачивание и Комментирование возможно только после регистрации.</span>
      </a>
      <li>
       <a>
        <span>Комментирование</span>
        <span>Скачивание и Комментирование возможно только после регистрации.</span>
      </a>
     </li>
     </ul>
   <?endif;?>
</div>
<?endforeach;?>

Оказалось, что он не работает и всем пользователям доступно скачивание. Вытащил этот код из инфоблока и разместил на странице - работает! В чем может быть дело, подскажите, пожалуйста?
  • Вопрос задан
  • 2117 просмотров
Решения вопроса 1
@Satir01 Автор вопроса
Решение: отключить кеширование.
Шаблон компонента кешируется и поэтому показывается одинаково и авторизованным, и неавторизованным пользователям
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
artem90
@artem90
TeamLead, Developer
Чтобы определить авторизацию для текущего пользователя надо использовать глобальную переменную $USER

global $USER;
if ($USER->IsAuthorized()) echo "Вы авторизованы!";

https://dev.1c-bitrix.ru/api_help/main/reference/c...
Ответ написан
Ваш ответ на вопрос

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

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