La strada 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 gruppo automatici:

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

Plugin core

  • Discourse Templates
      • can_use_private_templates? fa ancora riferimento diretto a everyone e non utilizza la notazione abbreviata _map nelle 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 currentUser.groups lato client, il che non è affidabile; eseguire invece un controllo lato server per content_localization_allowed_groups
  • Discourse Assign. Abbastanza tanti 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 aggiunti a disallowed_groups; nessuno di questi ha senso qui, contano solo i gruppi concreti.

Altri plugin

  • Activity Pub
    • Rimuovere il controllo lato client di showStatusToUser su user.groups e il controllo di everyone. Cambiare 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. Aggiungere 1 a mandatory_groups per suggested_edits_review_groups e rimuovere il caso speciale per gli amministratori in can_review_suggested_edits_in_topic_list
    • Aggiungere 0|4|5 a disallowed_groups per suggested_edits_review_groups e suggested_edits_suggest_groups; questa impostazione non è realmente destinata all’uso con questi pseudogruppi
  • Resenha

Temi

Componenti

Problemi a 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 eliminare il controllo per gli amministratori, aggiungere 1 all’impostazione whispers_allowed_groups come mandatory_values
    • Aggiungere 0|4 a disallowed_groups per l’impostazione del sito allow_solved_in_groups; questo riguarda solo i PM
    • Aggiungere 0|4|5 a disallowed_groups per about_page_extra_groups; questo è destinato a gestire solo gruppi concreti nella pagina about
    • Nota in can_view? per PresenceChannel che dobbiamo rimuovere il controllo di Group::AUTO_GROUPS[:everyone] quando questa imminente modifica passa a Permanent

Plugin core

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

Altri plugin

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

Temi

Componenti

Prossimi passi per la migrazione

  • Migrare allowed_group_ids del modello AiAgent
3 Mi Piace