Задача – показывать поля view только для пользователей определенной роли (или нескольких ролей).
Решить задачу конечно можно, создав несколько идентичных представлений (блоков или страниц), а затем ограничить их вывод по ролям. Но все же, на мой взгляд, проще с этой целью написать небольшой модуль и в нем имплементировать нужный хук модуля Views (см. документацию по API модуля Views). Итак, приступим.
Создадим модуль (подробнее о разработке модуля для Друпал я писал в статье о работе с Variable). Назовем его, например, My Views. Содержимое файла my_views.info будет таким:
description = Implements Views module hooks
package = Custom modules
core = 7.x
В основном файле модуля my_views.module имплементируем хук hook_views_pre_render(), который вызывается уже после выполнения и обработки запроса к базе данных сайта. Допустим, мы хотим выводить поле с машинным именем field_secret_field только для администраторов. Задачу решает код:
При необходимости мы можем дополнить этот код, например, уточнить, для какого именно отображения (дисплея) вьюшки мы хотим ввести это ограничение, добавить другие роли пользователей, которым нужно показывать поле и т.д.