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.
Problemi ad 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 i 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_mapnelle 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-adminguardacurrentUser.groupslato client, il che non è affidabile; eseguire invece un controllo lato server percontent_localization_allowed_groups
-
- Discourse Assign. Abbastanza tanti problemi qui.
- 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
- Rimuovere il controllo lato client di
showStatusToUsersuuser.groupse il controllo dieveryone. Cambiareactivity_pub_post_status_visibility_groupsper impostazione predefinita su4|5.
- Rimuovere il controllo lato client di
- Suggested Edits
user_in_suggested_edits_group?deve usareuser.in_any_groups?inGuardianExtensions. Aggiungere1amandatory_groupspersuggested_edits_review_groupse rimuovere il caso speciale per gli amministratori incan_review_suggested_edits_in_topic_list- Aggiungere
0|4|5adisallowed_groupspersuggested_edits_review_groupsesuggested_edits_suggest_groups; questa impostazione non è realmente destinata all’uso con questi pseudogruppi
- Resenha
- Rimuovere la 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 - Cambiare l’impostazione predefinita 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 per gli amministratori, aggiungere1all’impostazionewhispers_allowed_groupscomemandatory_values- Aggiungere
0|4adisallowed_groupsper l’impostazione del sitoallow_solved_in_groups; questo riguarda solo i PM - Aggiungere
0|4|5adisallowed_groupsperabout_page_extra_groups; questo è destinato a gestire solo gruppi concreti nella pagina about - Nota in
can_view?perPresenceChannelche dobbiamo rimuovere il controllo diGroup::AUTO_GROUPS[:everyone]quando questa imminente modifica passa aPermanent
Plugin core
- Chat
- Nota per
everyone_allowedin vari punti nella logica di auto-join/auto-leave di chat eusers_with_unreadsper rimuovere il controllo di:everyonequando questa imminente modifica passa aPermanent - Aggiornare
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
- Eliminare
add_model_callback(Group)in plugin.rb, è codice irrilevante/morto che guarda i nomi dei gruppi invece degli ID
- Eliminare
Altri plugin
- Code Review
- Il controllo di
can_review_code?sucode_review_allowed_groupsnon utilizza l’estensione_mape non utilizzauser.in_any_groups?. Aggiungere1amandatory_groupsper l’impostazione ed eliminare il controllo speciale per gli amministratori in guardian. Aggiungere0|4|5adisallowed_groups.
- Il controllo di
- Needs Love
- Il controllo di
can_needs_love?suneeds_love_allowed_groupsnon utilizza l’estensione_mape non utilizzauser.in_any_groups?. Aggiungere1amandatory_groupsper l’impostazione ed eliminare il controllo speciale per gli amministratori in guardian. Aggiungere0|4|5adisallowed_groups.
- Il controllo di
- Staff Alias
- Il controllo di
can_post_as_staff_aliassustaff_alias_allowed_groupsnon utilizza l’estensione_mape non utilizzauser.in_any_groups?. Aggiungere0|4|5adisallowed_groups
- Il controllo di
Temi
Componenti
Prossimi passi per la migrazione
- Migrare
allowed_group_idsdel modelloAiAgent