Re: Удалить заказ и Удалить товар
А какого плана проверку хотите сделать?
Если группа супервизор выводить кнопку удаление. Если нет, то скрыть ее
Re: Удалить заказ и Удалить товар
Вы можете вставить проверку, подвесившись на событие orm.delete.shop-order
Остановить удаление можно в обработчике события примерно так:
<?php
namespace Modulename\Config;
class Handlers extends \RS\Event\HandlerAbstract
{
function init()
{
$this->bind('orm.delete.shop-order');
}
public static function ormDeleteShopOrder($param, \RS\Event\Event $event) {
$current_user = \RS\Application\Auth::getCurrentUser();
if (!in_array('supervisor', $current_user->getUserGroups())) {
//Если пользователь не состоит в группе supervisor
$event->stopPropagation();
}
}
}
Re: Удалить заказ и Удалить товар
А как быть с удалением товара? Попробовал по выше приведенному примеру, не работает. Попробовал вставить проверку в саму функцию удаления товара product.inc.php тоже не выходит.
Re: Удалить заказ и Удалить товар
Укажите код, который использовали для удаления товара.
Re: Удалить заказ и Удалить товар
Укажите код, который использовали для удаления товара.
Вот такой
public static function ormDeleteCatalogProduct($param, \RS\Event\Event $event) {
$current_user = \RS\Application\Auth::getCurrentUser();
if (!in_array('supervisor', $current_user->getUserGroups())) {
//Если пользователь не состоит в группе supervisor
$event->stopPropagation();
}
}
Re: Удалить заказ и Удалить товар
Ну вроде бы всё правильно. Попробуйте обратиться в поддержку. Должно работать.
9 06.03.2017 11:27:39 Отредактировано Илья (06.03.2017 11:34:21)
Re: Удалить заказ и Удалить товар
Здравствуйте
1. Баг: Если использовать данный код, то товарная позиция не удаляется, но у нее после этого слетает основная категория. - Скажите как это можно поправить?
public static function ormDeleteCatalogProduct($param, \RS\Event\Event $event) {
$current_user = \RS\Application\Auth::getCurrentUser();
if (!in_array('supervisor', $current_user->getUserGroups())) {
//Если пользователь не состоит в группе supervisor
$event->stopPropagation();
}
}
2. Вопрос: Скажите на какое событие подвеситься, что бы сделать такую проверку в совершенном заказе?
3. Вопрос: событие orm.beforemultidelete.catalog-product уже появилось в новых версиях?
Re: Удалить заказ и Удалить товар
по 1 и 3 это Вам в поддержку.
Вопрос: Скажите на какое событие подвеситься, что бы сделать такую проверку в совершенном заказе?
orm.beforewrite или orm.afterwrite заказа.
11 06.03.2017 14:44:42 Отредактировано Илья (06.03.2017 15:00:35)
Re: Удалить заказ и Удалить товар
Но как там зафиксировать что это именно удаление, а не просто редактирование заказа например?
А id пользователя который выполняет удаление как то можно получить?
12 06.03.2017 16:53:09 Отредактировано Закусило Александр (06.03.2017 16:53:56)
Re: Удалить заказ и Удалить товар
Но как там зафиксировать что это именно удаление, а не просто редактирование заказа например?
По хуку удаления заказа.
http://readyscript.ru/dev-manual/dev_hooks.html
А id пользователя который выполняет удаление как то можно получить?
$current_user = \RS\Application\Auth::getCurrentUser();
Re: Удалить заказ и Удалить товар
Но как там зафиксировать что это именно удаление, а не просто редактирование заказа например?
По хуку удаления заказа.
http://readyscript.ru/dev-manual/dev_hooks.html
Не понятно, как в хуке orm.beforewrite сделать хук orm.delete.catalog.product. Можно пример?
Re: Удалить заказ и Удалить товар
Не понятно, как в хуке orm.beforewrite сделать хук orm.delete.catalog.product. Можно пример?
Такое невозможно.
Если Вам нужно определить, что Вы из административной панели редактируете заказ. То это можно по строке запроса адреса определить, через например $_SERVER['QUERY_STRING'] или $_SERVER['REQUEST_URI'].