Авторизованный доступ к категории


#1

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


#2


это есть в ядре, и в товарах тоже


#3

ОПРЕДЕЛЁННЫХ ПОЛЬЗОВАТЕЛЕЙ!
Иванова Ивана Ивановича под логином таким-то.


#4

Объем каков? Создается группа покупателей, которая присваивается этим пользователям, и ей открывается доступ только для этой группы. Что не так?


#5

Понял!
Основная проблема, что в этом списке доступа не видны административные группы.
Заглавный вопрос меняется:
Необходимо, чтобы и администраторы со стороны витрины могли участвовать в этом функционале.


Администратора невозможно включить в покупательскую группу “Для внутреннего пользования”, соответственно он не увидит на витрине закрытую категорию.


#6

У меня есть такая же проблемка по отсутствию в группах администраторов, администраторов вендоров в категориях, на страницах, формах, опросах.

Может, возможно как-то расширить стандартную схему групп пользователей использующуюся на всех таких страницах?


#7

По идее администратор должен увидеть всё. А вот покупатели, так как группа никому не назначена - эту категорию не увидят. Вы попробовали?


#8

Пробовал. Не работает.
Категорию видно только с /?action=preview
Товары в ней не видны.


#9

если вы знаете как вносить изменения через модуль 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'];
}
}

#11

Не прокатило. Группы администраторов в списке доступа появились, однако функционал не работает. При установке галок категория всё ровно не доступна администраторам (404)


#12

Я просто администратору такому создал покупателя. Гораздо проще, чем этот геморрой с правками.


#13

На отдельный адрес почты?


#14

Да, конечно


#15

В этом и неудобство. Администратору постоянно придётся перелогиниваться. Он не сможет оперативно посмотреть данные из заказа и техническую информацию с закрытой фронт-страницы.
Всё же подскажите, умельцы, как реализовать предложение от @leonidov ?


#16

два разных браузера? Или второе окно того же хрома открыть в режиме инкогнито?


#17

Ну на костылях-то понятно.


#18

попробуйте добавить этот хук 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
  )
);
}
}

#19

Добавил. Безрезультатно.


#20

может не сразу сработать, так как хук срабатывает только при генерации сессии, попробуйте сессию пользователя убить в базе и залогиниться снова


#21

В init.php fn_register_hooks(‘user_init’) не забыли?