[РЕШЕНО]Tickets редактирование чужих тикетов
Есть необходимость с фронта редактировать чужие тикеты и всё гуд, кроме одного, файлы привязанные к тикету не загружаются. Т.е. условный автор написал статью и прикрепил к ней 3 фотографии, условный менеджер открыл эту же статью и захотел фотографии удалить, но фотографий нет, только пустое поле для добавления файлов. Если этот менеджер добавит фотографии в чужой тикет, то он будет их видеть. Отсюда делаю вывод что дело в id пользователя, но как это убрать? У автора права TicketUserPolicy у менеджера TicketVipPolicy. Вопрос как дать возможность менеджеру редактировать файлы в чужом тикете?
Поблагодарить автора
Отправить деньги
Комментарии: 2
Решено. Находим в элементах сниппет Ticket Form. Открываем на редактирование. Находим на 110 строке условие и в нём удаляем 'createdby'=>$modx->user->id, тоже самое делаем в else. Всё.
Как выяснилось позже, решение выше решает не все проблемы, в частности нет возможности удалить чужой файл. Чтобы это исправить идем 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'))
Имейте ввиду при обновлении пакета все манипуляции нужно будет повторить.Решение прямо скажем не очень хорошее, но других вариантов я не придумал.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.