Restrict uploads

This is a very small theme component that will remove the upload button from the composer toolbar and disable drag-and-drop uploading for users that are under a specified trust level.

Illustration

Settings

Install this theme component

31 лайк

My forum is pushing 1.1GB in uploaded media. We’re growing in a way I wasn’t super prepared for and have been trying to coerce users to use places like imgur instead. This really, really helps!

3 лайка

Я пробовал использовать эти компоненты, но они не работают.

Может, @tshenry поможет мне?

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

2 лайка

Привет! :wave:

Я только что проверил, и всё работает корректно. Убедитесь, что вы добавили компонент «Restrict Uploads» в основную тему. Также потребуется выполнить жесткую перезагрузку страницы, чтобы компонент применился. И не забудьте, что учётная запись, которую вы используете для тестирования, не должна быть учётной записью сотрудника.

5 лайков

:warning: Примечание для всех, кто использует этот компонент: выпущено обновление, требующее наличия последней версии Discourse, прошедшей все тесты. Если ваш сайт Discourse не обновлён, НЕ обновляйте компонент, так как он будет ссылаться на базовый код, которого у вас ещё нет, что приведёт к сбою функциональности редактора сообщений на вашем сайте.

7 лайков

Привет,

Просто хочу отметить следующее:

Мне кажется, что в версии 2.6.0.beta2 это сломано (для администраторов и модераторов), но кроме собственного опыта я не могу получить никаких подтверждений.

2 лайка

Спасибо большое за отчёт, @Iceman! Я только что выложил исправление, которое должно всё вернуть в норму :slight_smile:
Дайте знать, если возникнут какие-либо проблемы после обновления компонента.

3 лайка

Только что протестировал, всё работает как и раньше, то есть отлично!

Огромное спасибо!

2 лайка

не ограничивает загрузку avi-файлов

было бы неплохо, если бы ограничивал

Можете немного подробнее?

Я только что попробовал загрузить AVI-файл с уровнем доверия ниже, чем указано в настройке темы «Ограничить уровнем доверия», и загрузка была заблокирована, как и ожидалось.

Если вы хотите запретить обычным пользователям (не сотрудникам) загружать именно AVI-файлы, убедитесь, что расширение AVI не добавлено в «Разрешенные расширения». Если вы хотите, чтобы сотрудники могли загружать AVI, добавьте это расширение в «Разрешенные расширения для сотрудников».

2 лайка

Это действительно круто.
Можно ли разделить ограничения между публикациями и личными сообщениями?
Например, разрешить загрузку изображений в личных сообщениях только сотрудникам, а пользователям уровня tl2 — в обычных публикациях.

3 лайка

Привет, просто хочу отметить, что это «ломается» в версии Discourse Latest (2.8.0.beta6 (0d809197aa)).

TypeError: null is not an object (evaluating ´this.mobileUploadButton.addEventListener´)

Детали:

  • Началось после пересборки (и, следовательно, обновления до последней версии).

  • Это происходит только на мобильных устройствах.

  • Не наблюдается во всех браузерах и не на всех устройствах (возможно, проблема в кэше? не знаю). Но как только это случается, для пользователя нет способа «исправить это».

  • Поведение странное: оно «меняет» работу кнопок. Кнопка «Отменить» (мусорная корзина) и кнопка «Предпросмотр» перезагружают страницу. Кнопка «Discourse Gifs Theme Component» просто разворачивает редактор.

  • Я думал, что это проблема совместимости с темой «Discourse Gifs», но если отключить её, проблема сохраняется.

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


Кстати, хочу воспользоваться случаем и сказать, какой это замечательный компонент темы, и что я искренне считаю, что он должен стать частью ядра :love_letter:

4 лайка

Спасибо за сообщение! В нашей основной системе загрузки недавно проводились работы, и, похоже, там есть небольшая ошибка. Мне даже удалось воспроизвести эту ошибку без использования компонента при определённых условиях. Я передам эту информацию инженеру, который занимается загрузками, чтобы мы могли это исправить!

Это звучит как разумная просьба о новой функции! Я посмотрю, что смогу сделать.

4 лайка

Привет, @Iceman. Спасибо за отчёт, проблема исправлена в FIX: Do not error mobile upload button if !allowUpload by martin-brennan · Pull Request #14317 · discourse/discourse · GitHub, который сейчас находится на стадии тестов.

4 лайка

Я заметил это сообщение в консоли.

[ТЕМА 6 «Ограничение загрузки»] Чтобы избежать ошибок в тестах, добавьте ключ pluginId в вызов modifyClass. Это обеспечит применение изменения только один раз.

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

1 лайк

Спасибо за отчёт. Я создал PR :+1:

4 лайка

:rocket: Объединено, спасибо!

4 лайка

Текст-заполнитель отличается для пользователей, не входящих в разрешённую группу уровня доверия

composer.reply_placeholder_no_images

Добавлено для уровней доверия 0, 1, 2. У меня параметр «Ограничить загрузки» установлен для уровня доверия 3.

Думаю, мне удалось исправить плейсхолдер, чтобы он работал с RTE и Markdown-редактором

4 лайка

Исправление уже слито :rocket: Ещё раз спасибо, @Moin! Если ты займёшься дальнейшей модернизацией, дай знать, когда будет готово, и я помогу слияние.

5 лайков