Создание товаров через ЛК из контекста web
Задача — дать пользователям возможность создавать товары через ЛК из контекста web.
Не получается запустить процессор $newProduct = $modx->runProcessor('resource/create', [...]);
permission_denied_processor
Пытался задавать разные права группе пользователей, пока никак. Если поставить Неограниченные права, то все запускается.
Информации, какие права требуются для процессора не нашел, пробовал выдавать права new_document_in_root и тд.
Если кто сталкивался, подскажите в сторону каких прав копать.
Не получается запустить процессор $newProduct = $modx->runProcessor('resource/create', [...]);
permission_denied_processor
Пытался задавать разные права группе пользователей, пока никак. Если поставить Неограниченные права, то все запускается.
Информации, какие права требуются для процессора не нашел, пробовал выдавать права new_document_in_root и тд.
Если кто сталкивался, подскажите в сторону каких прав копать.
Комментарии: 6
Делай так
oldUser = $modx->user;
$modx->user = $modx->getObject('modUser', 1);
$modx->runProcessor('resource/create', $_POST);
$modx->user = $oldUser;
Благодарю, почему-то сначала даже не думал в эту сторону
А потом злющий хакер меняет в форме поле «id» на «1», а «content» на слово из 3-х букв…
@Наумов Алексей конечно же прав, нельзя передавать $_POST как есть, нужно его валидировать. Однако вопрос был не про безопасность, а про то как сохранить данные))) Безопасность это отдельная обширная тема.
Я решал похожую задачу не много другим способом, юзер отправляет запрос на создание ресурса из контекста web, этот запрос пишется в собственную отдельную таблицу, затем скрипт по крону используя API создаёт ресурсы процессором согласно данными из этой таблицы, получается как бы работа в «фоновом режиме» и нет проблем с правами на создание ресурсов.
В Modx есть очереди, можно было не делать отдельную таблицу, а использовать их. Но это имеет смысл только если на создание уходит больше 30 секунд, что как правило редкость.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.