Questo è un argomento complementare a Granular group-based permissions for anonymous and logged in users ed è in fase di lavorazione (WIP).
Ci sono ancora alcuni punti in vari codebase per il core, i plugin e i temi che fanno riferimento diretto al gruppo everyone (o all’ID gruppo 0), senza tenere conto di questo cambiamento imminente o senza utilizzare user.in_any_groups? o vari metodi guardian utilizzati per gestirlo.
Per riferimento rapido, alcuni ID dei gruppi automatici:
0-everyone1-admins2-moderators3-staff4-anonymous_users5-logged_in_users
Questo argomento funge da punto centrale per tenere traccia delle correzioni per questo sistema mentre ci avviciniamo alla versione stabile. I plugin e i temi personalizzati per i clienti di Discourse non vengono tracciati qui; avrò un elenco separato interno per questo.
Problemi ad alta priorità
Problema sollevato da Moin:
- Core
- About -
apply_excluded_groupsè utilizzato solo per nascondere moderatori & admin selezionati dai gruppi inabout_page_hidden_groups. Non ha senso utilizzare pseudogruppi come0|4|5qui; dovrebbero essere aggiunti adisallowed_groups. Dobbiamo anche aggiornare la descrizione dell’impostazione poiché è fuorviante.
- About -
Plugin del core
- Discourse Templates
-
can_use_private_templates?fa ancora riferimento diretto aeveryonee non utilizza la scorciatoia_mapsulle impostazioni del sito.
-
- Discourse AI
-
can_see_summary?nelle estensioni guardian non utilizzauser.in_any_groups?
-
can_attach?in AiBot::Playground non utilizzauser.in_any_groups?
-
addTopicAdminMenuButtoninai-translation-topic-admincontrollacurrentUser.groupssul client, il che non è affidabile; effettuare un controllo lato server percontent_localization_allowed_groupsinvece
-
- Discourse Assign. Qui ci sono piuttosto molti problemi.
- Invece di
user_ids_in_groupsinAssignmentPermissions, dovremmo usareuser_ids_in_groups assign_allowed_on_groupsdovrebbe avere0|4|5aggiunti adisallowed_groups; nessuno di questi ha senso qui, contano solo i gruppi concreti.
- Invece di
Altri plugin
- Activity Pub
- Rimuovi il controllo lato client di
showStatusToUsersuuser.groupse il controlloeveryone. Cambia il valore predefinito diactivity_pub_post_status_visibility_groupsin4|5.
- Rimuovi il controllo lato client di
- Suggested Edits
user_in_suggested_edits_group?deve utilizzareuser.in_any_groups?inGuardianExtensions. Aggiungi1amandatory_groupsdisuggested_edits_review_groupse rimuovi il caso speciale per gli admin incan_review_suggested_edits_in_topic_list- Aggiungi
0|4|5adisallowed_groupsdisuggested_edits_review_groupsesuggested_edits_suggest_groups; questa impostazione non è realmente destinata a essere utilizzata con questi pseudogruppi
- Resenha
- Rimuovi la workaround
untargetable_group_idsinpublic_room_message_bus_targetspoiché è stata risolta in FIX: Handle new pseudogroups in message bus group IDs (#42610) · discourse/discourse@699ad46 · GitHub - Cambia il valore predefinito di
resenha_allowed_groupsda0a4|5
- Rimuovi la workaround
Temi
Componenti
Problemi a bassa priorità
- Core
is_in_edit_topic_groupsinTopicGuardiandovrebbe utilizzare l’estensione_mapper l’impostazione del sitoRoleable#whisperer?dovrebbe utilizzareuser.in_any_groups?ed eliminare il controllo admin, aggiungere1awhispers_allowed_groupscomemandatory_values- Aggiungi
0|4adisallowed_groupsper l’impostazione del sitoallow_solved_in_groups, questa riguarda solo i messaggi privati (PM) - Aggiungi
0|4|5adisallowed_groupsperabout_page_extra_groups, questo dovrebbe gestire solo gruppi concreti nella pagina “About” - Nota in
can_view?perPresenceChannelche dobbiamo rimuovere il controlloGroup::AUTO_GROUPS[:everyone]quando questo cambiamento imminente passa aPermanent
Plugin del core
- Chat
- Nota per
everyone_allowedin vari punti nella logica di auto-join/auto-leave della chat eusers_with_unreadsper rimuovere il controllo:everyonequando questo cambiamento imminente passa aPermanent - Aggiorna
chat_allowed_group_idsinChat::Publisherper rimuovere il pseudogruppo speciale, come in FIX: Handle new pseudogroups in message bus group IDs - Pull Request #42610 - discourse/discourse - GitHub MessageBus può ora gestire correttamente i pseudogruppi
- Nota per
- Assign
- Elimina
add_model_callback(Group)in plugin.rb, è codice irrilevante/morto che controlla i nomi dei gruppi invece degli ID
- Elimina
Altri plugin
- Code Review
- Il controllo
can_review_code?sucode_review_allowed_groupsnon utilizza l’estensione_mape non utilizzauser.in_any_groups?. Aggiungi1amandatory_groupsper l’impostazione ed elimina il controllo admin speciale nel guardian. Aggiungi0|4|5adisallowed_groups.
- Il controllo
- Needs Love
- Il controllo
can_needs_love?suneeds_love_allowed_groupsnon utilizza l’estensione_mape non utilizzauser.in_any_groups?. Aggiungi1amandatory_groupsper l’impostazione ed elimina il controllo admin speciale nel guardian. Aggiungi0|4|5adisallowed_groups.
- Il controllo
- Staff Alias
- Il controllo
can_post_as_staff_aliassustaff_alias_allowed_groupsnon utilizza l’estensione_mape non utilizzauser.in_any_groups?. Aggiungi0|4|5adisallowed_groups
- Il controllo
Temi
Componenti
Prossimi passi per la migrazione
TBA