Restrict uploads

Спасибо, всё работает

Теперь можно ли настроить этот компонент так, чтобы он ограничивал доступ только группами подписчиков :P?

Единственный способ сделать это самостоятельно — сделать невозможным достижение уровня доверия 3, увеличив количество дней и т. д., а затем вручную добавлять людей при подписке. Скорее всего, я пойду именно этим путём, если не смогу изменить настройки по группам.

2 лайка

Функция «Ограничить загрузку» теперь полностью блокирует возможность загрузки файлов в новых сообщениях или ответах.

1 лайк

Верно, извините.

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

Сейчас у меня нет времени углубляться в это.

Одна вещь, которую я заметил при тестировании сегодня: использование "*" в api.addComposerUploadHandler(["*"]) ломает регулярное выражение, используемое для сопоставления обработчиков загрузки.

1 лайк

Кажется, это должно быть частью ядра. Это лишь моё скромное мнение, но возможность контролировать загрузку файлов по уровню доверия, группе или даже отдельным пользователям была бы очень полезна.

2 лайка

Я полагаю, вам нужно использовать метод подкласса, чтобы корректно переопределить этот вычисляемый дескриптор.

import discourseComputed from "discourse-common/utils/decorators";

api.modifyClass("service:composer", 
  (SuperClass) => class extends SuperClass {
    @discourseComputed
    allowUpload() {
      return super.allowUpload && canUpload;
    }
  }
);

РЕДАКТИРОВАНИЕ:

Созданный PR:

4 лайка

Я создал запрос на включение изменений, который переключает компонент с ограничений на основе уровня доверия на ограничения на основе групп:

9 лайков