Какие права доступа нужно давать пользователям для удаление своих записей

Всем привет, сделал добавление и изменения записей со стороны фронтенда и хотел сделать еще удаление записей, но проблема в том, что у админа удаление работает, а у пользователей нет. В журнале ошибок выскакивает ошибка, что у пользователя нет прав на удаление. Когда пользователь нажимает на ссылку «Удалить», то появляется просто текст Array. Сейчас стоит web, member-9999, load,list and view, но пробовал ставить разные политики доступа, ничего не меняется.
Код сниппета
<?php
if (!empty($_GET['action']) && $_GET['action'] === 'delete' && !empty($_GET['resourceId'])) {
    $resourceId = intval($_GET['resourceId']);
    $resource = $modx->getObject('modResource', $resourceId);

    // Проверка, существует ли ресурс
    if (!$resource) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Ресурс с ID ' . $resourceId . ' не найден.');
        return $modx->error->failure('Ресурс не найден.');
    }

    // Проверка прав доступа
    if (!$modx->hasPermission('delete_document')) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: У пользователя нет прав на удаление ресурса с ID ' . $resourceId);
        return $modx->error->failure('У вас нет прав на удаление этого ресурса.');
    }

    // Проверка, является ли текущий пользователь создателем ресурса
    $userId = $modx->user->get('id');
    if ($resource->get('createdby') != $userId) {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Пользователь с ID ' . $userId . ' пытался удалить чужой ресурс с ID ' . $resourceId);
        return $modx->error->failure('Вы можете удалять только свои записи.');
    }

    // Удаление ресурса
    if ($resource->remove()) {
        $modx->log(modX::LOG_LEVEL_INFO, 'Ресурс с ID ' . $resourceId . ' успешно удален пользователем с ID ' . $userId);
        // Перенаправление после успешного удаления
        $modx->sendRedirect($modx->makeUrl($modx->getOption('site_start'), '', '', 'full'));
    } else {
        $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка: Не удалось удалить ресурс с ID ' . $resourceId);
        return $modx->error->failure('Не удалось удалить ресурс.');
    }
}
Ссылка на удаление
a href="[[~[[*id]]]]?action=delete&resourceId=[[+id]]" onclick="return confirm('Вы уверены, что хотите удалить этот ресурс?');">Удалить ресурс</a>
Может кто в курсе какие права доступа вставлять или может я вообще неправильно все делаю.
Илья
Вчера в 11:58
modx.pro
22
0

Как импортировать msProductOptions данные через miniShop2 утилиту Импорт?

Как импортировать msProductOptions данные через miniShop2 утилиту Импорт? Будет ли работать это решение?



modx.pro/solutions/12280

Если да, что нужно добавить в файлы csv.php и importCSV.php, чтобы работало через утилиту?

Спасибо
Trying
17 марта 2025, 17:53
modx.pro
20
0

Вывод полей в таблице заказов minishop2

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

Если более детально описать, то требуется в таблицу с заказами вывести любое поле из таблицы ms2_order_addresses.

У меня получилось добавить новые колонки в таблице, но они пусты. На сколько я понимаю, в момент генерации таблицы нет запроса к ms2_order_addresses, сама таблица работает с ms2_orders.



На скрине колонка «Адрес получателя» живет аккурат в таблице ms2_order_addresses и пуста.

Буду благодарен помощи!
Дмитрий
16 марта 2025, 22:46
modx.pro
49
0

MODX RSC | Telegram Karma Bot

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

🤖 Telegram-бот для управления кармой пользователей в чате. Бот добавляет или убирает карму, банит пользователей за рекламу и отображает топ пользователей по карме.


Денис Усманов
16 марта 2025, 00:30
modx.pro
184
+9

Не выводятся данные пользователя в профиле

Всем привет!
Сделал регистрацию и авторизацию с Login, затем сделал личный кабинет и все это работает. Захотел сделать страницу профиль пользователя, чтобы другие могли посмотреть.
Илья
14 марта 2025, 17:36
modx.pro
81
0

Получить ALT изображения в сниппете ms2GalleryResources на fenom

Не могу на fenom получить alt или name изображения ms2Gallery в сниппете ms2GalleryResources.
{$file['name']} даёт пустое значение. Без fenom работает [[+small.alt]], по аналогии {$small['alt']} — даёт / (слэш)

Прикреплю код сниппета. Если тыкнете в строчку, где подсказка, буду рад. Сам нашел $thumb.alt на 69 строке, но ребус разгадать все-равно не могу.
Павлик Мышкин
13 марта 2025, 15:57
modx.pro
87
0

MIGx. Listbox. Fenom. Вставка label вместо value.

Имеется список listbox с данными:
Библиотека №3 == library_3 || Библиотека №15 == library_15.

В одном месте в чанке нужно вставить label, то есть название, например «Библиотека №3»:
{$row.calendarEventsPlace}
А вдругом месте вставить соответствующее label value, library_3:
data-lib="{$row.calendarEventsPlace}"
Value вставляется по-умолчанию, а как вставить название в код, чтобы не создавть дополнительное поле в конфигурации?
Александр
13 марта 2025, 10:33
modx.pro
187
0

Обновление Impex и Impex3

Всем привет.
Вышли версии 1.0.4 обоих пакетов с новыми полезными функциями. 
  • Добавлена возможность копирования существующей конфигурации.
  • Добавлена возможность удаления файлов по отдельности (конфигураций, файлов импорта/экспорта, бэкапов).
  • Добавлено системное событие OnImpexBeforeSetParentProduct, вызываемое перед обработкой родительской категории.
  • Добавлено системное событие OnImpexBeforeFieldImport, вызываемое перед импортом конкретного поля.
  • Во все события плагинов добавлена переменная $config_name — имя файла конфигурации.
  • Добавлен плагин Impex с примерами.
  • В конфигурации добавлен параметр category_id_field для указания поля категории, содержащее её уникальный идентификатор.
  • В конфигурации добавлен параметр skip_new, для пропуска при импорте отсутствующих на сайте позиций (только обновление существующих).
  • В плагине на событие OnImpexAfterResourceImport (после импорта ресурса) теперь доступен массив $data со всеми загруженными данными.
  • Исправлены небольшие ошибки + добавилась проверка версии PHP и MODX при установке.

Павел Романов
13 марта 2025, 09:40
modx.pro
236
+3

mFilter2 фильтрация из своей таблицы

Есть таблица modx_estate, создана модель и в принципе все поля из таблицы подтягиваются и tpl-ку выводятся
, но не могу фильтровать по полям своей таблицы. Подскажите как добавить в &filters например estate|totalArea (само собой totalArea имеется)) )

[[!mFilter2?   
                .......
                &loadModels=`estate`
                &leftJoin=`{
                    "Estate": {
                        "class": "Estate",
                        "alias": "Estate",
                        "on": "Estate.idHouse = CAST(modResource.link_attributes AS UNSIGNED)"
                    }
                }`
                &select=`{
                    "modResource": "*",
                    "Estate": "*"
                }`
                &filters=`
                 estate|totalArea`
                &showLog=`1`
 ]]
guliverland
13 марта 2025, 09:20
modx.pro
80
0

Доработка Fancybox для вывода видео с Rutube

Добрый день, помогите с выводом видео с рутуб вместо ютуб. На сайте раздел с видео, видео настроено на доп полях, в доп поле просто вставлялась с ссылка с ютуб и в другом доп поле картинка превью. При нажатии на картинку открывается модальное окно Fancybox с видео, ссылка с рутуб не работает, как понимаю надо подружить рутуб с Fancybox? как это можно реализовать? Готов к помощи за вознаграждение.
Сергей
11 марта 2025, 15:02
modx.pro
187
0