Скрыть поле для созданной подроли, Field Permissions не подошел.

Главные вкладки

Аватар пользователя Happy Smile Happy Smile 18 апреля 2017 в 16:33

У меня на сайте есть 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.png23 КБ

Комментарии

Аватар пользователя bumble bumble 18 апреля 2017 в 17:23

По умолчанию, все авторизованные пользователи имеют роль "authenticated user" ("Користувач").

Т.е. даже, если у него есть роль Real, Vip, Leader или Moderator - все права роли "Пользователь" будут им доступны, потому что пользователи других ролей - так же являются авторизованными.

Вполне вариант - создать кастомную роль для обычных пользователей, и ей назначать права.

SkySofiaK wrote:

С блоками данный вопрос решила с помощью модуля Hide Block by Role

В настройках блоков, "из коробки", есть настройка отображения для ролей. Просто логику нужно организовывать с другой стороны (давать доступ определенным ролям).

Ну, и главная истина - все манипуляции с формами решаются с помощью hook_form_alter.

Аватар пользователя Andruxa Andruxa 18 апреля 2017 в 17:57

Добавьте роль New user и автоматом назначайте её зарегистрированным.
Для анонима и нового юзера - показывайте поле, остальным - нет.
При назначении ролей Real, Vip, Leader, Moderator - убирайте роль New.
Рулами, я думаю, можно это решить.

Аватар пользователя Happy Smile Happy Smile 18 апреля 2017 в 21:16

Там уже есть 5000+ человек + много настроек для них по блокам и тд, но мне пришла мысль от xakd, тоесть не показывать поля, а скрывать поля, тогда бес проблем скрываю от Real, Vip, Leader, Moderator, только нужно искать модуль который скоет поля, спасибо за обьясение вам )))

Аватар пользователя multpix multpix 18 апреля 2017 в 23:52

SkySofiaK wrote:

Задача - скрыть поле для ролей - Real, Vip, Leader, Moderator., покзать поле для анонимный пользователь и пользователи. В чем проблема?

Это не имеет смысла.
но.. перепишите шаблон поля с условием проверкой роли текущего пользователя,
по условию и отображайте.
(побольше таких глупостей, и ваш экземпляр друпал станет неповоротливой ожиревшей хней))

SkySofiaK wrote:

Там уже есть 5000+ человек + много настроек

Вобще не аргумент.
Никогда не работайте на продакшн
Пожалейте своих 5К+ людей
Они не виноваты что вы за них взялись)