Удаление ресурса, тикета с frontend

Добрый день, бьюсь над проблемой удаления ресурса с фронтенд части сайта.
<?php
if (!isset($_GET['docid']) and !$id = intval($_GET['docid'])) {
    return;
}
$response = $modx->runProcessor('resource/delete', array('id' => $id));
if (!$response->isError()) {
    return 'Ресурс отмечен как удаленный!';
    // echo $response->getResponse();
}
Cниппет вызываемый из сайта, в который передается id документа.
Но какие бы я права не накладывал, все равно на выходе удаления не происходит, ввиду отсутствия прав.
Подскажите, кто как реализовывал удаление ресурсов, созданных пользователем с сайта.
Олег
11 мая 2018, 10:35
modx.pro
1
1 477
+1

Комментарии: 7

Максим
12 мая 2018, 10:02
0
Вот исходник — https://github.com/bezumkin/Tickets/blob/master/core/components/tickets/processors/mgr/ticket/delete.class.phpА вот тут проверяются права
Думаю что вы сможете разобраться как реализовать безопасный функционал без чужих костылей.
Посмотрев внимательно эти 2 исходника — картина проясняется.
    Олег
    13 мая 2018, 12:13
    0
    Это вызов со стороны mgr, как сделать проверку по пользователю на фронте?
    Процессоры как раз решают эту проблему.
    Василий Столейков
    15 мая 2018, 09:56
    1
    -1
    Может через обычный $modx->getObject и set('deleted', 1)? Всегда срабатывало.
    Не а права можешь сам проверять, например если пользователь является автором и в нужной группе пользователей.
      Олег
      15 мая 2018, 10:03
      0
      Можно ли показать пример проверки прав на ресурс. Сколько не искал — ничего.
        Василий Столейков
        17 мая 2018, 12:37
        2
        0
        <?php
        $res = $modx->getObject('modResource', $_GET['docid']);
        if($res) {
            $createdby = $res->get('createdby');
            if($modx->user->isMember('Administrator') || $createdby == $modx->user->id) { // если админ или если ты автор ресурса
                $res->set('deleted', 1);
                if($res->save()) {
                    return 'Ресурс отмечен как удаленный!';
                }
            }    
        }
          Олег
          17 мая 2018, 16:21
          0
          Благодарю! Сделал по другому, но логику понял.
            Роман
            03 марта 2021, 22:02
            0
            Приветствую, поделитесь пожалуйста решением, как реализовали удаление тикета с фронтента?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7