2016-06-09 4 views
0

У нас есть сайт Drupal 7.Drupal7 Фильтровать видимые веб-формы на основе организации пользователя

У нас есть «Пользователь X», который выбрал, к какой организации они принадлежат, когда они зарегистрировались, в поле организации. Но обратите внимание, что это не роль - это точно так же, как они выбрали, к какому имени компании они принадлежат.

У нас есть Webforms, назначенные различным организациям (опять же, компания, а не роль) по значению данных в одном из полей формы; организации. «Пользователь Y» присваивает этому значению данные веб-форме.

Нам нужно отфильтровать, какие веб-формы «Пользователь X» может видеть по области организации.

Фильтр будет представлять собой «Пользователь X», выбранный при регистрации, по сравнению с введенными данными в поле организации в веб-форме «Пользователь Y».

Как настроить фильтр? Как я могу фильтровать, что может видеть «Пользователь X» Webforms?

+0

Простым ответом было бы превращение организаций в роли. Затем каждый Webform может иметь perms на основе роли. –

+0

«Орг» находится в раскрывающемся списке формы «Пользователь Y». Как вы можете поместить роль в выпадающий список, чтобы выбрать, если у пользователя нет доступа к этой роли из-за их уровня разрешений? Например, «Пользователь Y» не имеет доступа к «Роль 5» и, следовательно, не может видеть его в списке, нет? –

+0

Правильно, по умолчанию Drupal не очень гранулирован в своих Разрешениях на Разрешения. Предоставление людям права управлять своей собственной ролью предоставит им доступ ко всем Разрешениям. Однако есть легкий модуль, называемый «Role Delegation», который позволяет вам предоставлять доступ людям для изменения или назначения ролей, не предоставляя им полные разрешения. Вы можете сделать правило, согласно которому люди в одной организации могут назначать некоторые роли, но не другие. Извините, если я не понимаю ваш вопрос. Я знаю, что я предлагаю альтернативное предложение, а не точный ответ. –

ответ

0

Мне кажется, вам нужно написать hook_menu access_callback для каждой формы, которая проверяет, находится ли пользователь в конкретной организации. Было бы полезно для вас, есть ли какое-то именование, что позволило использовать один и тот же меню крюк для всех форм, как:

$form_id = 'form_org_1' 

и

$user->org = 'org_1' 

, но это, вероятно, не тот случай. Надеюсь, не существует много форм/орг.