Вопрос:
Есть:
Есть 1 тип материала: Заявка.
Есть группа клиенты.
Есть группа администраторы.
Клиенты видят только свои заявки.
Админы видят все.
Админам нужно создавать заявки для клиентов.
Как ???:
Создать заявку к которой имеет доступ только тот клиент для которого она создана.
При этом нужно записать кто создал заявку (сейчас у админов нет прав на правку автора).
Как я себе это представляю:
Вариант1: Автора материала не трогаем. Добавляем доп поле cck в котором заполняется для кого эта заявка.
И в дальнейшем к этому материалу имеет доступ только группа админов и пользователь (указанный в поле cck) для которого создана заявка.
Вариант 2: Пока писал придумал еще один способ решения. Добавить скрытое поле cck где по дефолту прописывается пользователь создающий заявку. Тогда нужно сделать изменение автора из автодополняемого поля в выпадающий список.
Вариант3: Предлагайте.
Комментарии
Проштудируйте пример как ограничить доступ к ноде
Либо используйте модуль Node access user reference или подобный
У меня стоит Nodeaccess он позволяет дать автору свои права.
А также разграничить права по ролям с категориями доступа чтение, редактирование, удаление.
Но мне нужно чтобы и автор сохранился (из группы администраторы) и права были только у одного пользователя из группы клиенты.
Сейчас нашел возможно более простое решение. В редакциях сохраняется первый (автор т.е.) создатель даже при условии того что админ указал автором другого пользователя при создании этого материала.
Только как вытащить этого первого создателя в views не нашел.
Решил добавить скрытое поле cck c дефолтным значением имени пользователя. (тем самым указав создателя материала)
Поле cck с дефолтным значением:
return array(
0 => array('value' => $GLOBALS['user']->name));