[Решено] Как ограничить возможность ссылок через Node Reference только на материалы автора?

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

Аватар пользователя MasteRRR MasteRRR 28 января 2012 в 21:32

Здравствуйте, уважаемые друпаловеды. Имеется следующая задача: есть тип материала А и тип материала Б, имеющий поле Node Reference с ссылкой на материалы типа А. Есть несколько различных пользователей, которые могут создавать материалы обоих типов. Как ограничить юзера, чтобы при создании/изменении материала типа Б он мог создавать ссылки на те материалы типа А, автором которых он является?

Пытался решить с помощью rules, но не получается получить список авторов нод, связанных нод с редактируемой. Кто как решал данную задачу?

Комментарии

Аватар пользователя torquemada torquemada 28 января 2012 в 23:03

Думаю, разумнее всего решать через вьюс. Сделайте дисплей с нужной выборкой (т.е. один единственный человек = текущий юзер), и используйте ее для фильтрации нод референс.

Аватар пользователя Ch Ch 28 января 2012 в 23:22

Вьюс поможет только автокомплит отфильтровать, пользователь всё равно сможет ссылаться на чужие ноды.

Аватар пользователя torquemada torquemada 29 января 2012 в 0:25

Здорово, это никогда в голову не приходило. Если это действительно так - нужно писать небольшой модуль, перехватывать форму и проводить свою валидацию, вряд ли можно сделать что-то более быстрое.

Аватар пользователя MasteRRR MasteRRR 16 марта 2012 в 17:04

Забыл поблагодарить torquemada и Ch, предложенное ими решение устроило, достаточно выбрать в свойствах поля Node Reference выпадающий список.

"kos_tya_kot" wrote:
можно по подробней пожалуйста о VIEWS какую сделать выборку нужно

Пожалуйста.
1. Создаешь представление типа Reference, фильтром выбираешь необходимый тип ноды (в моем примере - нода типа А)
2. Выбираешь Contextual filter по автору ноды, в качестве значения указываешь User ID from Logged in user
3. В типе содержимого (в моем примере - тип содержимого Б) создаем поле типа Node Reference, указываем в свойствах выпадающий список (если автокомплит, то теоретически умный пользователь может вручную указать другую ноду, мы действительно ограничиваем только автокомплит), указываем тип материала, на который он может ссылаться и базовое представление (то, которые мы создали в п.1.).
4. ...
5. Profit

Надеюсь, мое описание тебе поможет