Как настроить Rules для настройки доступа в Permissions by Term

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

Аватар пользователя Tinnka Tinnka 11 июня 2018 в 0:00

Уважаемые коллеги,
подскажите кто может пожалуйста.

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

На сайте используется Drupal 8 Commerce 2. Дополнительно установлены модули Permissions by Term Rules.

Для покупки доступа созданы 2 продукта.

  • Продукт 1: после покупки продукта пользователю должна присваиваться роль Premium.
  • Продукт 2: после покупки продукта пользователю должен предоставляться доступ к термину (см. на изображении PERMISSIONS - Allowed users ).
    permissions_by_term

Подскажите пожалуйста, как настроить правила описанные для продуктов 1 и 2.

Или может у кого то есть опыт как реализовать требуемую функциональность другим путем.

ВложениеРазмер
Иконка изображения permissions_by_term.png29.5 КБ

Комментарии

Аватар пользователя VasyOK VasyOK 11 июня 2018 в 0:59

"а некоторые куски нод только тем у кого есть доступ" - поподробнее пожалуйста
Т.е. не только цена купить а еще что-то? Или цена другая для премиум пользователя?

Аватар пользователя Tinnka Tinnka 11 июня 2018 в 11:51

Речь идет об обучающих курсах. Есть два типа контента. Один это описание курса, а второй это уроки прикрепленные к описанию курса. Каждый урок состоит из описания, embed video и pdf файла.

Описание курса и описание всех уроков курса доступны всем, а вот видео и файл доступны только тем купит доступ к этому курсу (купит доступ к термину) или купит премиум доступ и получит доступ ко всем курсам.

Я не могу понять как с помощью правил, добавить действие, чтобы после покупки товара "X", для термина "X" в поле "Allowed users" добавить покупателя (в примере там уже добавлен пользователь Tinnka) и нужно добавлять всех кто купит доступ к термину.

Аватар пользователя bumble bumble 11 июня 2018 в 1:19

Rules'ы предоставляют возможность установки роли юзеру.

Просто присваивайте роль после изменения статуса заказа на какой-нибудь, означающий подтверждение оплаты, и согласно настроек термина со скрина - он (юзер) получит доступ к термину.

Аватар пользователя Tinnka Tinnka 11 июня 2018 в 11:49

Это решение для покупки продукта 1, где пользователю после покупки достаточно присвоить роль Premium и он получит доступ к термину, а вот как после покупки товара "X", для термина "X" в поле "Allowed users" добавить покупателя?

Аватар пользователя bumble bumble 11 июня 2018 в 15:02

Эм...
Commerce Rules

Коммерц не не работает с правилами, а просто в 8ке все сущности "равны", а правила работают с сущностями, и не требуется доп. интеграция..

Аватар пользователя Tinnka Tinnka 11 июня 2018 в 15:08

Но я не могу найти как настроить действие чтобы для термина добавить Allowed users. Вы можете помочь, пожалуйста?

Аватар пользователя bumble bumble 11 июня 2018 в 15:16

А Вы думали там будет действие из разряда "Добавить Allowed users термину"?

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

И это при условии, что нужное поле будет должным образом правилами поддерживаться.

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