Discourse AI non rispetta il gruppo "everyone"

Sembra che questo sia lo stesso problema noto che causa problemi con i template.
everyone-group-unable-to-see-private-templates

In questo caso, le opzioni del bot-ai appaiono, ma il bot semplicemente non risponde mai.

2 Mi Piace

Grazie per aver cercato problemi precedenti! :sunglasses: :+1:

Penso che lo stesso valga anche qui:

Non puoi dare agli utenti anonimi l’accesso al chatbot, quindi usare trust_level_0 è una soluzione efficace per il tuo caso d’uso. :slight_smile:

8 Mi Piace

@Roman leggendo il codice in Discourse penso che ora funzioni.

È ora di chiudere questo e rimuovere il codice di retrocompatibilità?

È un po’ complicato. In origine ho aggiunto l’opzione everyone perché volevamo consentire agli utenti anonimi di vedere i gists. Ogni funzionalità ha le sue regole, quindi non credo che impostare i gruppi consentiti di una Persona su quello renderà la funzionalità disponibile a tutti.

Questo è ancora un problema. Se “Gruppi consentiti per il bot IA” è impostato su everyone, il bot non risponde.

Penso che il bug sia qui

return false if (SiteSetting.ai_bot_allowed_groups_map & post.user.group_ids).blank?

Se l’impostazione è everyone, questo restituisce false, poiché 0 non è in post.user.group_ids

Il modello corretto è !user.in_any_groups?(SiteSetting.ai_bot_allowed_groups_map)

che ha un caso speciale per everyone:

  def in_any_groups?(group_ids)
    group_ids.include?(Group::AUTO_GROUPS[:everyone]) ||
      (is_system_user? && (Group.auto_groups_between(:admins, :trust_level_4) & group_ids).any?) ||
      (group_ids & belonging_to_group_ids).any?
  end
5 Mi Piace