Вы здесь

Организация сложного алгоритма доступа к публикации и редактированию контента

2

Всем привет. Первый вопрос от меня, требуется помощь зала ;)

  1. Есть нода типа "Организация". Есть нода типа "Новость" с entity reference на "Орг".

  2. Надо организовать доступ юзеров к:
    а) возможности публикации "Новости" только от имени выбранной "Орг", то есть список доступных для выбора в "Орг" в "Новости" брать из профиля юзера,
    б) редактировать "Новости", уже ранее опубликованные от "Орг" (до введения этой системы),
    в) редактировать доступные "Орг".

  3. А модератору потом утверждать все эти правки, с предварительным сравнением изменений.

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

Пока мысли такие:

  1. Тут всё Entity reference - сделано.

  2. У юзера (/admin/config/people/accounts/fields) поле ссылка на "Орг". Но далее "белое пятно" - как сделать всё можно?
    а) prepopulate? И что из этого?
    б) Rules?
    в) что-то из а)?

  3. Workbench - пока установлен, не разбирался не настраивал, задерживает 2. Справится?

Версия Drupal: 
7.x
Категория: 
Access control
Связанные проекты: 
Workbench
Вопрос задан 26.05.2015 - 22:59
Аватар пользователя VVS
VVS
31

Ответы

1

Я подозреваю что есть такие модули, но не для данной конкретной задачи, так как вы обозначили ЭнтитиРеференс.
Своими Хуками это делать несложно.
давайте вы сделаете первые 2 шага:
1. сделаете в меню отображение ссылки на публикацию новости, если у юзера есть в профиле в поле Организация - хотя бы 1 элемент.
2. сделаете на странице добавления ноды типа Новость проверку имеет ли юзер в поле Организация хотя бы 1 элемент.
- и если да, то предложить выбор в поле НовостьОрганизации из набора организаций пользователя
- если нет, то скрыть форму добавления ноды и отобразить сообщение или просто блок или ноду типа вы не имеете доступа. но это не избавляет его от возможности добавить ноду с программерскими ухищрениями (всетаки программист сможет добавить так как права все равно есть). тогда напишите еще и хук который при каждом добавлении ноды типа новость проверяет имеет ли юзер такую организацию, которую он выбрал в поле НовостьОрганизации.

Когда сделаете можете продолжат в направлении. Я подозреваю что доступ по полям ЭнтитиРеференс в друпал не распределяется, так что надо писать свои модули.

Ответ дан 26.05.2015 - 23:37

А можете примерчик набросать, или послать к хукам API?

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

Комментарий оставлен 27.05.2015 - 14:47
1

http://niklan.net/blog/63 - поможет делить доступы на просмотр, правку, удаление как угодно.

Ответ дан 27.05.2015 - 14:46
Аватар пользователя Niklan
Niklan
445