Permessi granulari basati su gruppi per utenti anonimi e registrati

@moin questa PR DEV: Add resolve_group_membership functionality to theme settings - Pull Request #41360 - discourse/discourse - GitHub è stata ora unita e sto aggiungendo la documentazione in DEV: Docs for theme setting resolve_group_membership - Pull Request #41537 - discourse/discourse - GitHub. Ho corretto discourse-copy-post con DEV: Use resolve_group_membership core theme functionality - Pull Request #37 - discourse/discourse-copy-post - GitHub e ora sto esaminando i nostri altri plugin ufficiali per vedere se ce ne sono altri che necessitano dello stesso trattamento (ad esempio, hai già indicato GitHub - discourse/discourse-unanswered-filter · GitHub).

Per il tuo Filter Favorites, puoi vedere l’esempio di copy-post che ho realizzato, ma fondamentalmente devi aggiungere resolve_group_membership: true sia a default_favorite_filters_groups che a custom_favorite_filters_allowed_groups. In questo modo saranno disponibili come valori booleani in base all’appartenenza dell’utente ai gruppi nelle settings come settings.user_in_default_favorite_filters_groups e settings.user_in_custom_favorite_filters_allowed_groups rispettivamente, e ora non è più necessario controllare manualmente gli ID dei gruppi degli utenti nel frontend.

Modificherei il valore predefinito di default_favorite_filters_groups in 4|5 nel tuo componente tema, che corrisponde agli utenti connessi e anonimi, invece di 0 (everyone) che verrà rimosso a breve.

Prenderò nota di eseguire una migrazione del database sulle impostazioni dei temi quando eliminerò il gruppo “tutti”; dovrò farne una anche per le impostazioni del sito. Questo avverrà quando la modifica imminente diventerà permanente nelle prossime settimane (a seconda di eventuali altri problemi che potrebbero sorgere e di quanto velocemente riuscirò a correggere altri temi/componenti che necessitano dell’aggiunta di resolve_group_membership).

Al momento non esiste un modo per farlo come per le impostazioni del sito… Non penso che sia necessario aggiungerlo ora, puoi semplicemente menzionarlo nella descrizione dell’impostazione e usare currentUser nel frontend per proteggere l’accesso. Forse in futuro lo aggiungerò se ci sarà più bisogno.

1 Mi Piace