Подскажите модуль.
Нужно, чтобы определённая категория товаров была доступна с витрины только для определённых авторизованных покупателей.
ОПРЕДЕЛЁННЫХ ПОЛЬЗОВАТЕЛЕЙ!
Иванова Ивана Ивановича под логином таким-то.
Объем каков? Создается группа покупателей, которая присваивается этим пользователям, и ей открывается доступ только для этой группы. Что не так?
Понял!
Основная проблема, что в этом списке доступа не видны административные группы.
Заглавный вопрос меняется:
Необходимо, чтобы и администраторы со стороны витрины могли участвовать в этом функционале.
Администратора невозможно включить в покупательскую группу “Для внутреннего пользования”, соответственно он не увидит на витрине закрытую категорию.
У меня есть такая же проблемка по отсутствию в группах администраторов, администраторов вендоров в категориях, на страницах, формах, опросах.
Может, возможно как-то расширить стандартную схему групп пользователей использующуюся на всех таких страницах?
По идее администратор должен увидеть всё. А вот покупатели, так как группа никому не назначена - эту категорию не увидят. Вы попробовали?
Пробовал. Не работает.
Категорию видно только с /?action=preview
Товары в ней не видны.
если вы знаете как вносить изменения через модуль my_changes
то подключение такого php хука get_usergroups_pre, добавит в товарах и категориях группы для админов и вендоров
use Tygh\Registry;
function fn_my_changes_get_usergroups_pre(&$params, $lang_code)
{
if(in_array(Registry::get('runtime.controller'),['products','categories'])&&
Registry::get('runtime.mode')=='update' && isset($params['type']))
{
$params['type']=['C','A','V'];
}
}
Не прокатило. Группы администраторов в списке доступа появились, однако функционал не работает. При установке галок категория всё ровно не доступна администраторам (404)
Я просто администратору такому создал покупателя. Гораздо проще, чем этот геморрой с правками.
На отдельный адрес почты?
Да, конечно
В этом и неудобство. Администратору постоянно придётся перелогиниваться. Он не сможет оперативно посмотреть данные из заказа и техническую информацию с закрытой фронт-страницы.
Всё же подскажите, умельцы, как реализовать предложение от @leonidov ?
два разных браузера? Или второе окно того же хрома открыть в режиме инкогнито?
Ну на костылях-то понятно.
попробуйте добавить этот хук user_init, он добавит авторизованным на витрине админам список их групп пользователей из админ панели , и тогда от добавления в товар/категорию этих групп появится смысл .
use Tygh\Enum\UserTypes;
use Tygh\Enum\SiteArea;
function fn_my_changes_user_init(&$auth, $user_info, $first_init)
{
if ($user_info['user_type']==UserTypes::ADMIN && AREA == SiteArea::STOREFRONT) {
$auth['usergroup_ids']=isset($auth['usergroup_ids'])?$auth['usergroup_ids']:[];
$auth['usergroup_ids'] = array_merge($auth['usergroup_ids'],fn_define_usergroups(
array(
'user_id' => Tygh::$app['session']['auth']['user_id'],
'user_type' => $user_info['user_type']
),
SiteArea::ADMIN_PANEL
)
);
}
}
Добавил. Безрезультатно.
может не сразу сработать, так как хук срабатывает только при генерации сессии, попробуйте сессию пользователя убить в базе и залогиниться снова
В init.php fn_register_hooks(‘user_init’) не забыли?