Невозможно загрузить аватар профиля без добавления всех групп в список разрешённых для загружаемых аватаров

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

Знает ли кто-нибудь о другом параметре, который я мог упустить или о котором не знаю? Спасибо за любую помощь. Скриншоты ниже.

Скриншот при входе в систему как пользователь:

Скриншот настроек администратора:

image

Скриншот из деталей пользователя:

Разрешенные расширения? Разрешена ли загрузка изображений?

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

Пробовали ли они несколько файлов? Моя первая догадка — размер файла, либо по габаритам, либо сам размер файла.

Есть ли какие-то особенности в том, как был создан этот пользователь? Используете ли вы DiscourseConnect? Настройка discourse connect overrides avatar также предотвращает загрузку аватара пользователями.

Нет — у них буквально нет никакой возможности загрузки.

Мы используем DiscourseConnect, но у других пользователей никогда не возникало проблем.

Изменяет ли безопасный режим что-либо?

Я не вижу необычной активности в логах для этого пользователя в DiscourseConnect:

[2024-05-30 01:59:26] sso_provider.INFO: parse_request.success {"user_id":169965}

Мы не используем аватары WordPress. Это должно полностью контролироваться внутри Discourse:

image

Безопасный режим не имеет эффекта.

Попробуйте другой браузер и/или окно в режиме инкогнито.

Другие браузеры не работают. Это определенно проблема с правами доступа. И ситуация усложняется: я только что протестировал несколько других пользователей, и, похоже, проблема возникает у всех (за исключением администраторов, насколько я могу судить).

В списке доступен только вариант, назначенный системой.

Как администратор, я вижу другие варианты:

Хорошо, я разобрался. Я добавил все уровни доверия и все возможные группы, в которые может входить пользователь, в список разрешённых групп для загрузки аватарок:

Однако ранее было установлено только trust_level_0, поэтому любой пользователь с уровнем доверия выше TL0 не мог загружать аватарки. Странно то, что при просмотре профилей пользователей видно, что все они состоят в этой группе, даже если позже были повышены до более высокого уровня доверия. Не произошло ли каких-то изменений в недавнем выпуске? Казалось бы, если указать TL0 как требуемый уровень для загрузки, то это автоматически должно предоставить те же права пользователям с более высокими уровнями доверия.

trust_level_0 — это значение по умолчанию для uploaded_avatars_allowed_groups.

Все находятся на уровне tl0, как вы и предполагали.

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

Так оно и должно работать.

Возможно, стоит поделиться точным хешем коммита и, возможно, посмотреть заголовки коммитов непосредственно до ((и, возможно, после) него.

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

Отлично. Мы на версии 3.2.1, точный коммит здесь: Commits · discourse/discourse · GitHub

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

Я не вижу никаких коммитов, которые кажутся очевидными кандидатами.

Я не могу воспроизвести проблему на одном из моих сайтов.

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

Можете попробовать изменить видимость вашей группы TL0 на «все» в настройках группы и посмотреть, даст ли это нужный результат? (И сбросьте uploaded_avatars_allowed_groups только до TL0)

Я протестировал на своей стабильной версии с тестовым пользователем, имеющим уровень TL2. Повторить проблему не удалось. У моего тестового пользователя нет проблем с загрузкой аватара.

Discourse Stable 3.2.2

Настройки групп, по-моему, по умолчанию

Если вы установите видимость группы TL0 как «только для сотрудников» или «никому», возникнет ли тогда ошибка?

Спасибо, @Firepup650

Видимость группы TL0 была установлена как «Владельцы и модераторы групп». Изменение на «Все» решает проблему. К сожалению, мы не можем скрыть участников уровня доверия и при этом позволить пользователям выбирать свои аватары. Это кажется странным, ведь почему одно должно влиять на другое? Либо они входят в группу, либо нет.

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