[Почти решено].Разграничение прав к нодам по полю cck. Привязка материалов к пользователю.

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

Аватар пользователя Vistler Vistler 18 октября 2011 в 18:05

Вопрос:

Есть:
Есть 1 тип материала: Заявка.
Есть группа клиенты.
Есть группа администраторы.
Клиенты видят только свои заявки.
Админы видят все.

Админам нужно создавать заявки для клиентов.

Как ???:
Создать заявку к которой имеет доступ только тот клиент для которого она создана.
При этом нужно записать кто создал заявку (сейчас у админов нет прав на правку автора).

Как я себе это представляю:
Вариант1: Автора материала не трогаем. Добавляем доп поле cck в котором заполняется для кого эта заявка.
И в дальнейшем к этому материалу имеет доступ только группа админов и пользователь (указанный в поле cck) для которого создана заявка.

Вариант 2: Пока писал придумал еще один способ решения. Добавить скрытое поле cck где по дефолту прописывается пользователь создающий заявку. Тогда нужно сделать изменение автора из автодополняемого поля в выпадающий список.

Вариант3: Предлагайте.

Комментарии

Аватар пользователя Vistler Vistler 19 октября 2011 в 9:17

У меня стоит Nodeaccess он позволяет дать автору свои права.
А также разграничить права по ролям с категориями доступа чтение, редактирование, удаление.

Но мне нужно чтобы и автор сохранился (из группы администраторы) и права были только у одного пользователя из группы клиенты.

Сейчас нашел возможно более простое решение. В редакциях сохраняется первый (автор т.е.) создатель даже при условии того что админ указал автором другого пользователя при создании этого материала.

Только как вытащить этого первого создателя в views не нашел.
Решил добавить скрытое поле cck c дефолтным значением имени пользователя. (тем самым указав создателя материала)

Поле cck с дефолтным значением:
return array(
0 => array('value' => $GLOBALS['user']->name));