Il percorso verso la stabilità, poi la permanenza, per granular_anonymous_and_logged_in_groups_permissions

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 - everyone
  • 1 - admins
  • 2 - moderators
  • 3 - staff
  • 4 - anonymous_users
  • 5 - 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:

Plugin core

  • Discourse Templates
      • can_use_private_templates? fa ancora riferimento diretto a everyone e non utilizza la notazione abbreviata _map sulle impostazioni del sito.
  • Discourse AI
      • can_see_summary? nelle estensioni guardian non utilizza user.in_any_groups?
      • can_attach? in AiBot::Playground non utilizza user.in_any_groups?
      • addTopicAdminMenuButton in ai-translation-topic-admin guarda a currentUser.groups sul client, il che non è affidabile; esegui invece un controllo lato server per content_localization_allowed_groups
  • Discourse Assign. Abbastanza problemi qui.
    • Invece di user_ids_in_groups in AssignmentPermissions, dovremmo usare user_ids_in_groups
    • assign_allowed_on_groups dovrebbe avere 0|4|5 aggiunto a disallowed_groups; nessuno di questi ha senso qui, contano solo i gruppi concreti.

Altri plugin

  • Activity Pub
    • Rimuovi il controllo client-side di user.groups e everyone in showStatusToUser. Cambia activity_pub_post_status_visibility_groups per impostazione predefinita su 4|5.
  • Suggested Edits
    • user_in_suggested_edits_group? deve usare user.in_any_groups? in GuardianExtensions. Aggiungi 1 a mandatory_groups per suggested_edits_review_groups e rimuovi il caso speciale per gli amministratori in can_review_suggested_edits_in_topic_list
    • Aggiungi 0|4|5 a disallowed_groups per suggested_edits_review_groups e suggested_edits_suggest_groups; questa impostazione non è realmente destinata a essere utilizzata con questi pseudogruppi
  • Resenha

Temi

Componenti

Problemi di bassa priorità

  • Core
    • is_in_edit_topic_groups in TopicGuardian dovrebbe usare l’estensione _map per l’impostazione del sito
    • Roleable#whisperer? dovrebbe usare user.in_any_groups? e liberarsi dal controllo degli amministratori, aggiungendo 1 all’impostazione whispers_allowed_groups come mandatory_values
    • Aggiungi 0|4 a disallowed_groups per l’impostazione del sito allow_solved_in_groups; questo riguarda solo i PM
    • Aggiungi 0|4|5 a disallowed_groups per about_page_extra_groups; questo dovrebbe trattare solo gruppi concreti nella pagina about
    • Nota in can_view? per PresenceChannel che dobbiamo rimuovere il controllo Group::AUTO_GROUPS[:everyone] quando questa modifica imminente passa a Permanent

Plugin core

  • Chat
  • Assign
    • Liberati da add_model_callback(Group) in plugin.rb, è codice irrilevante/morto che guarda ai nomi dei gruppi invece degli ID

Altri plugin

  • Code Review
    • Il controllo can_review_code? su code_review_allowed_groups non utilizza l’estensione _map e non utilizza user.in_any_groups?. Aggiungi 1 a mandatory_groups per l’impostazione e liberati dal controllo speciale per gli amministratori nel guardian. Aggiungi 0|4|5 a disallowed_groups.
  • Needs Love
    • Il controllo can_needs_love? su needs_love_allowed_groups non utilizza l’estensione _map e non utilizza user.in_any_groups?. Aggiungi 1 a mandatory_groups per l’impostazione e liberati dal controllo speciale per gli amministratori nel guardian. Aggiungi 0|4|5 a disallowed_groups.
  • Staff Alias
    • Il controllo can_post_as_staff_alias su staff_alias_allowed_groups non utilizza l’estensione _map e non utilizza user.in_any_groups?. Aggiungi 0|4|5 a disallowed_groups

Temi

Componenti

Prossimi passi per la migrazione

TBA

2 Mi Piace