У меня на сайте есть 2 стандартные роли - анонимный пользователь и пользователи, создано 4 роли - Real, Vip, Leader, Moderator. Задача - скрыть поле для ролей - Real, Vip, Leader, Moderator., покзать поле для анонимный пользователь и пользователи. В чем проблема? когда в настройках поля Field visibility and permissions выбрать те две роли анонимный пользователь и пользователи, то те другие роли Real, Vip, Leader, Moderator. тоже выбираются и не выключаются, но все таки надо скрыть поле для этих 4 ролей и показать только 2 ролям. С блоками данный вопрос решила с помощью модуля Hide Block by Role, но для полей не нашла такого модуля и потому прошу помощи Вашей.
Прикрепляю скрин
Вложение | Размер |
---|---|
ippaipai.png | 23 КБ |
Комментарии
По умолчанию, все авторизованные пользователи имеют роль "authenticated user" ("Користувач").
Т.е. даже, если у него есть роль Real, Vip, Leader или Moderator - все права роли "Пользователь" будут им доступны, потому что пользователи других ролей - так же являются авторизованными.
Вполне вариант - создать кастомную роль для обычных пользователей, и ей назначать права.
В настройках блоков, "из коробки", есть настройка отображения для ролей. Просто логику нужно организовывать с другой стороны (давать доступ определенным ролям).
Ну, и главная истина - все манипуляции с формами решаются с помощью hook_form_alter.
Роль "пользователи" - это все пользователи. Все верно у вас работает. Логика неверная
Добавьте роль New user и автоматом назначайте её зарегистрированным.
Для анонима и нового юзера - показывайте поле, остальным - нет.
При назначении ролей Real, Vip, Leader, Moderator - убирайте роль New.
Рулами, я думаю, можно это решить.
Там уже есть 5000+ человек + много настроек для них по блокам и тд, но мне пришла мысль от xakd, тоесть не показывать поля, а скрывать поля, тогда бес проблем скрываю от Real, Vip, Leader, Moderator, только нужно искать модуль который скоет поля, спасибо за обьясение вам )))
Это не имеет смысла.
но.. перепишите шаблон поля с условием проверкой роли текущего пользователя,
по условию и отображайте.
(побольше таких глупостей, и ваш экземпляр друпал станет неповоротливой ожиревшей хней))
Вобще не аргумент.
Никогда не работайте на продакшн
Пожалейте своих 5К+ людей
Они не виноваты что вы за них взялись)