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 gruppo 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 man mano che ci avviciniamo alla versione stabile. I plugin e i temi personalizzati per i clienti di Discourse non sono tracciati qui; avrò un elenco separato internamente per questo scopo.
Problemi ad alta priorità
Problema sollevato da Moin:
- Core
- About -
apply_excluded_groupsviene utilizzato solo per nascondere moderatori e amministratori selezionati dai gruppi inabout_page_hidden_groups. Non ha senso usare pseudogruppi come0|4|5qui; 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; dovrebbe essere un controllo lato server comeevaluateper gli ACL
- About -
Plugin Core
- Discourse Templates
-
can_use_private_templates?fa ancora riferimento direttamente aeveryonee non utilizza la notazione abbreviata_mapsulle impostazioni del sito.
-
- Discourse AI
-
can_see_summary?nelle estensioni guardian non usauser.in_any_groups?
-
can_attach?in AiBot::Playground non usauser.in_any_groups?
-
addTopicAdminMenuButtoninai-translation-topic-adminguarda acurrentUser.groupssul client, il che non è affidabile; effettuare invece un controllo lato server percontent_localization_allowed_groups
-
- Discourse Assign. Ci sono parecchi problemi qui.
- Invece di
user_ids_in_groupsinAssignmentPermissions, dovremmo usareuser_ids_in_groups - A
assign_allowed_on_groupsdovrebbe essere aggiunto0|4|5indisallowed_groups; nessuno di questi ha senso qui, contano solo i gruppi concreti.
- Invece di
Altri plugin
- Activity Pub
- Rimuovere il controllo client-side di
showStatusToUsersuuser.groupse il controllo dieveryone. Cambiareactivity_pub_post_status_visibility_groupsper impostazione predefinita su4|5.
- Rimuovere il controllo client-side di
- Suggested Edits
user_in_suggested_edits_group?deve usareuser.in_any_groups?inGuardianExtensions. Aggiungere1amandatory_groupspersuggested_edits_review_groupse rimuovere il caso speciale per admin incan_review_suggested_edits_in_topic_list- Aggiungere
0|4|5adisallowed_groupspersuggested_edits_review_groupsesuggested_edits_suggest_groups; questa impostazione non è davvero destinata a essere usata con questi pseudogruppi
- Live
- Rimuovere la workaround
untargetable_group_idsinpublic_room_message_bus_targetspoiché questo è stato risolto in FIX: Handle new pseudogroups in message bus group IDs (#42610) · discourse/discourse@699ad46 · GitHub - Cambiare il valore predefinito di
resenha_allowed_groupsda0a4|5
- Rimuovere la workaround
Temi
Componenti
Problemi a bassa priorità
- Core
is_in_edit_topic_groupsinTopicGuardiandovrebbe usare l’estensione_mapper l’impostazione del sitoRoleable#whisperer?dovrebbe usareuser.in_any_groups?e eliminare il controllo admin, aggiungendo1all’impostazionewhispers_allowed_groupscomemandatory_values- Aggiungere
0|4adisallowed_groupsper l’impostazione del sitoallow_solved_in_groups, che riguarda solo le PM - Aggiungere
0|4|5adisallowed_groupsperabout_page_extra_groups, che dovrebbe gestire solo gruppi concreti nella pagina about - Nota in
can_view?perPresenceChannel: dobbiamo rimuovere il controlloGroup::AUTO_GROUPS[:everyone]quando questa imminente modifica passerà aPermanent
Plugin Core
- Chat
- Nota per
everyone_allowedin vari punti della logica di auto-join/auto-leave in chat eusers_with_unreads: rimuovere il controllo:everyonequando questa imminente modifica passerà aPermanent - Aggiornare
chat_allowed_group_idsinChat::Publisherper rimuovere lo pseudogruppo speciale, poiché come indicato 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
- Eliminare
add_model_callback(Group)in plugin.rb, è codice irrilevante/morto che guarda ai nomi dei gruppi invece degli ID
- Eliminare
Altri plugin
- Code Review
- Il controllo
can_review_code?sucode_review_allowed_groupsnon usa l’estensione_mape non usauser.in_any_groups?. Aggiungere1amandatory_groupsper l’impostazione ed eliminare il controllo admin speciale in guardian. Aggiungere0|4|5adisallowed_groups.
- Il controllo
- Needs Love
- Il controllo
can_needs_love?suneeds_love_allowed_groupsnon usa l’estensione_mape non usauser.in_any_groups?. Aggiungere1amandatory_groupsper l’impostazione ed eliminare il controllo admin speciale in guardian. Aggiungere0|4|5adisallowed_groups.
- Il controllo
- Staff Alias
- Il controllo
can_post_as_staff_aliassustaff_alias_allowed_groupsnon usa l’estensione_mape non usauser.in_any_groups?. Aggiungere0|4|5adisallowed_groups
- Il controllo
Temi
Componenti
Prossimi passi per la migrazione
- Migrare
allowed_group_idsdel modelloAiAgent