martin
(Martin Brennan)
06.Июль.2026 01:59:03
11
Noble_Fish:
Интересно, существует ли таблица, разъясняющая значение этого термина в разных контекстах. Такие различия вводят в заблуждение и вызывают беспокойство — ведь когда люди изначально выбирали эту настройку, они, вероятно, не знали её реального значения, поэтому захотели бы проверить связанные параметры. Сейчас я могу только проверять каждое место, где настраиваются группы, по отдельности, и выяснять, что означало это значение раньше, глядя, на что оно изменилось после включения функции «Детальные группы» — это всё равно что шарить в темноте.
Отличная идея… Возможно, я смогу с помощью ИИ проанализировать все места, где используются настройки на основе групп, и выяснить, возможно ли вообще для anonymous получить доступ к этим ресурсам.
Есть целый ряд настроек, которые уже запрещают выбор группы anonymous_users, так что это, вероятно, хорошее отправное место… скоро отпишусь здесь с результатами.
martin:
Краткое обновление: у меня есть идея, как это обработать, и мы сейчас обсуждаем это внутри команды. Надеюсь, это не займёт слишком много времени
Сейчас я работаю над PR для этого:
main ← dev/theme-setting-group-setting-membership
merged 11:29PM - 07 Jul 26 UTC
Currently, theme settings with `type: list` and `list_type: group`
require clie… nt-side permission checks, but `currentUser.groups` only
includes visible groups, not all groups the user belongs to. This makes
permission checks unreliable and can leak hidden group membership.
To address this, this commit adds an opt-in `resolve_group_membership:
true` option that replaces the group ID list with a user_in_SETTING_NAME
boolean resolved server-side via `guardian.in_any_groups?`. The original
group list is removed from the frontend payload to prevent leaking group
IDs.
Since theme settings are cached per-theme (not per-user), the resolution
happens after the cache lookup during per-request serialization in
`ApplicationLayoutPreloader#activated_themes_json`.
Example YAML:
```yaml
copy_button_allowed_groups:
type: list
list_type: group
resolve_group_membership: true
default: "1|3"
```
Frontend usage:
```javascript
if (!settings.user_in_copy_button_allowed_groups) return;
```
Скоро после этого будут следующие PR и изменения в документации.
3 лайка