[РЕШЕНО]Tickets редактирование чужих тикетов

Есть необходимость с фронта редактировать чужие тикеты и всё гуд, кроме одного, файлы привязанные к тикету не загружаются. Т.е. условный автор написал статью и прикрепил к ней 3 фотографии, условный менеджер открыл эту же статью и захотел фотографии удалить, но фотографий нет, только пустое поле для добавления файлов. Если этот менеджер добавит фотографии в чужой тикет, то он будет их видеть. Отсюда делаю вывод что дело в id пользователя, но как это убрать? У автора права TicketUserPolicy у менеджера TicketVipPolicy. Вопрос как дать возможность менеджеру редактировать файлы в чужом тикете?
Артур Шевченко
08 марта 2020, 00:02
modx.pro
481
0
Поблагодарить автора Отправить деньги

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

Артур Шевченко
11 марта 2020, 00:52
0
Решено. Находим в элементах сниппет Ticket Form. Открываем на редактирование. Находим на 110 строке условие и в нём удаляем 'createdby'=>$modx->user->id, тоже самое делаем в else. Всё.
    Артур Шевченко
    12 марта 2020, 18:00
    0
    Как выяснилось позже, решение выше решает не все проблемы, в частности нет возможности удалить чужой файл. Чтобы это исправить идем core/components/tickets/processors/mgr/ticket/update.class.php, открываем на редактирование находим
    $q->andCondition(array('parent' => $this->object->id, 'createdby' => $this->modx->user->id), null, 1);

    Заменяем на
    $q->andCondition(array('parent' => $this->object->id), null, 1);
    Ещё меняем
    if ($this->object->createdby != $this->modx->user->id && !$this->modx->hasPermission('edit_document'))
    на
    if (!$this->modx->hasPermission('edit_document'))
    Имейте ввиду при обновлении пакета все манипуляции нужно будет повторить.
    Решение прямо скажем не очень хорошее, но других вариантов я не придумал.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2