martin
(Martin Brennan)
6. Juli 2026 um 01:59
11
Noble_Fish:
Ich frage mich, ob es eine Tabelle gibt, um die Bedeutung dieses Begriffs in verschiedenen Kontexten zu unterscheiden. Solche Unterschiede sind sowohl verwirrend als auch beunruhigend – denn als die Leute diese Einstellung ursprünglich gewählt haben, haben sie wahrscheinlich nicht gewusst, was sie tatsächlich bedeutet, also würden sie die zugehörigen Einstellungen überprüfen wollen. Derzeit kann ich nur an jeder Stelle, an der Gruppen einzeln eingestellt sind, prüfen und bestätigen, was es früher bedeutete, indem ich sehe, zu wem es geändert wurde, nachdem die Granulare Gruppenfunktion aktiviert wurde – was sich anfühlt, als würde man im Dunkeln tappen.
Das ist eine gute Idee… Vielleicht kann ich mit KI etwas zaubern, um in all den Orten zu suchen, an denen gruppenbasierte Einstellungen verwendet werden, und auszugeben, ob es überhaupt möglich ist, dass anonymous auf diese Dinge zugreifen kann.
Es gibt eine Reihe von Einstellungen, die bereits die Auswahl der Gruppe anonymous_users nicht zulassen, also sind das wahrscheinlich ein guter Ausgangspunkt… werde hier mit den Ergebnissen zurückmelden.
martin:
Kurzes Update, ich habe eine Idee, wie wir das handhaben können, und wir führen dazu einige interne Diskussionen. Hoffentlich dauert es nicht zu lange
Ich arbeite gerade an PRs dafür:
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;
```
Es wird bald darauf weitere PRs und Änderungen an der Dokumentation geben.
3 „Gefällt mir“