Kantona, придется немножко покодить.
В файле templates/modern/content/default_item.tpl.php перед циклом, где перебираются поля типа контента пишем такую конструкцию: (цикл начинается с <?php foreach ($fields_fieldsets as $fieldset_id => $fieldset) { ?>)
Так как данный файл обрабатывает записи из всех типов контента, то сначала необходимо проверить, что вы в нужном ТК:
<?php if($ctype['name'] == 'your_name') { ?>
...
<?php } ?>
your_name — это системное имя вашего ТК.
Ну а далее уже напишем условие для показа поля авторизованным пользователям:
<?php if($ctype['name'] == 'your_name') { ?>
<?php $user = cmsUser::getInstance(); ?>
<?php if (cmsUser::isLogged()) { ?>
<?php echo $item['fields']['вашеполе']['html'] ?>
<?php } else { ?>
<p class = "text-danger">Чтобы скачивать этот файл, необходимо <a class = "ajax-modal key" href = "/auth/login">авторизоваться</a> на сайте</p>
<?php } ?>
<?php } ?>
Как-то примерно так. Пишу с телефона, поэтому если где-то синтаксическая ошибка — не пинайте.
Хотя подключать сюда работу с методами компонента пользователи не совсем правильно — но, такой вариант тоже должен работать. Буду у ПК, напишу более цивильное решение. Если кто-то не даст его раньше )