Questo è un argomento correlato a Granular group-based permissions for anonymous and logged in users ed è in fase di sviluppo (WIP).
Ci sono ancora alcuni punti in vari codebase per core, plugin e temi che fanno riferimento diretto al gruppo everyone o all’ID del gruppo (0), senza tenere conto di questa imminente modifica o senza utilizzare user.in_any_groups? o i vari metodi guardian utilizzati per gestirlo.
Per riferimento rapido, alcuni ID di gruppi automatici:
0-everyone1-admins2-moderators3-staff4-anonymous_users5-logged_in_users
Questo argomento funge da luogo centrale per tenere traccia delle correzioni per questo sistema man mano che ci avviciniamo alla stabilità. I plugin e i temi personalizzati per i clienti di Discourse non sono tracciati qui; avrò un elenco separato internamente per questo.
Problemi di alta priorità
Problema sollevato da Moin:
- Core
- About -
apply_excluded_groupsviene utilizzato solo per nascondere i moderatori e gli amministratori selezionati dai gruppi inabout_page_hidden_groups. Non ha senso che i pseudogruppi come0|4|5vengano utilizzati qui; dovrebbero essere aggiunti adisallowed_groups. Dobbiamo anche aggiornare la descrizione dell’impostazione poiché è fuorviante. - EditCategoryTabsController - In
_wouldLoseAccessdiscourse/frontend/discourse/admin/controllers/edit-category/tabs.js at 86552acfbaf816db3b9db5f761f5e9f2bd221c21 · discourse/discourse · GitHub stiamo guardando solo ai gruppi visibili; questo dovrebbe essere un controllo lato server comeevaluateper gli ACL.
- About -
Plugin core
- Discourse Templates
-
can_use_private_templates?fa ancora riferimento diretto aeveryonee non utilizza la notazione abbreviata_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-adminguarda acurrentUser.groupssul client, il che non è affidabile; esegui invece un controllo lato server percontent_localization_allowed_groups
-
- Discourse Assign. Abbastanza problemi qui.
- Invece di
user_ids_in_groupsinAssignmentPermissions, dovremmo usareuser_ids_in_groups assign_allowed_on_groupsdovrebbe avere0|4|5aggiunto adisallowed_groups; nessuno di questi ha senso qui, contano solo i gruppi concreti.
- Invece di
Altri plugin
- Activity Pub
- Rimuovi il controllo client-side di
user.groupseeveryoneinshowStatusToUser. Cambiaactivity_pub_post_status_visibility_groupsper impostazione predefinita su4|5.
- Rimuovi il controllo client-side di
- Suggested Edits
user_in_suggested_edits_group?deve usareuser.in_any_groups?inGuardianExtensions. Aggiungi1amandatory_groupspersuggested_edits_review_groupse rimuovi il caso speciale per gli amministratori incan_review_suggested_edits_in_topic_list- Aggiungi
0|4|5adisallowed_groupspersuggested_edits_review_groupsesuggested_edits_suggest_groups; questa impostazione non è realmente destinata a essere utilizzata con questi pseudogruppi
- Resenha
- Rimuovi il workaround
untargetable_group_idsinpublic_room_message_bus_targetspoiché questo è stato affrontato 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 il workaround
Temi
Componenti
Problemi di bassa priorità
- Core
is_in_edit_topic_groupsinTopicGuardiandovrebbe usare l’estensione_mapper l’impostazione del sitoRoleable#whisperer?dovrebbe usareuser.in_any_groups?e liberarsi dal controllo degli amministratori, aggiungendo1all’impostazionewhispers_allowed_groupscomemandatory_values- Aggiungi
0|4adisallowed_groupsper l’impostazione del sitoallow_solved_in_groups; questo riguarda solo i PM - Aggiungi
0|4|5adisallowed_groupsperabout_page_extra_groups; questo dovrebbe trattare solo gruppi concreti nella pagina about - Nota in
can_view?perPresenceChannelche dobbiamo rimuovere il controlloGroup::AUTO_GROUPS[:everyone]quando questa modifica imminente passa aPermanent
Plugin core
- Chat
- Nota per
everyone_allowedin vari punti nella logica di auto-join/auto-leave della chat e inusers_with_unreadsper rimuovere il controllo:everyonequando questa modifica imminente passa aPermanent - Aggiorna
chat_allowed_group_idsinChat::Publisherper rimuovere lo pseudogruppo speciale, poiché come in FIX: Handle new pseudogroups in message bus group IDs - Pull Request #42610 - discourse/discourse - GitHub MessageBus può ora gestire correttamente gli pseudogruppi
- Nota per
- Assign
- Liberati da
add_model_callback(Group)in plugin.rb, è codice irrilevante/morto che guarda ai nomi dei gruppi invece degli ID
- Liberati da
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 e liberati dal controllo speciale per gli amministratori 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 e liberati dal controllo speciale per gli amministratori 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