It looks like this is the same known issue that causes problems with templates.
everyone-group-unable-to-see-private-templates
In this case, the ai-bot options appear, but the bot simply never responds.
It looks like this is the same known issue that causes problems with templates.
everyone-group-unable-to-see-private-templates
In this case, the ai-bot options appear, but the bot simply never responds.
Thanks for searching for prior issues!
![]()
I think the same applies here:
You can not give anonymous users access to the chat bot, so using trust_level_0 is an effective solution for your use case. ![]()
@Roman reading through the code in Discourse I think this works now.
Is it time to close this off and remove the backwards compat code?
Itâs a bit tricky. I originally added the everyone option because we wanted to let anonymous users see gists. Every feature has its own rules so I donât think setting a Personaâs allowed groups to that will make the feature available to everyone.
This is still an issue. If âAI bot allowed groupsâ is set to everyone, the bot does not respond.
I think the bug is here
return false if (SiteSetting.ai_bot_allowed_groups_map & post.user.group_ids).blank?
If the setting is everyone then this returns false, since 0 is not in post.user.group_ids
The correct pattern is !user.in_any_groups?(SiteSetting.ai_bot_allowed_groups_map)
which has a special case for 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