FIX: allow create events for everyone group (#726)

When `discourse_post_event_allowed_on_groups` is set to `everyone`, everyone should be able to create post events.
This commit is contained in:
Krzysztof Kotlarek 2025-05-02 15:47:21 +08:00 committed by GitHub
parent 89a90d892f
commit 42d6ccf44d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 1 deletions

View File

@ -158,7 +158,11 @@ after_initialize do
begin
return true if staff?
allowed_groups = SiteSetting.discourse_post_event_allowed_on_groups.to_s.split("|").compact
allowed_groups.present? && groups.where(id: allowed_groups).exists?
allowed_groups.present? &&
(
allowed_groups.include?(Group::AUTO_GROUPS[:everyone].to_s) ||
groups.where(id: allowed_groups).exists?
)
rescue StandardError
false
end

View File

@ -46,6 +46,17 @@ describe User do
end
end
context "when allowed group is 'everyone'" do
let(:topic_1) { Fabricate(:topic, user: user_1) }
let(:post_1) { Fabricate(:post, topic: topic_1, user: user_1) }
let(:post_event_1) { Fabricate(:event, post: post_1) }
it "can act on the event" do
SiteSetting.discourse_post_event_allowed_on_groups = Group::AUTO_GROUPS[:everyone]
expect(user_1.can_act_on_discourse_post_event?(post_event_1)).to eq(true)
end
end
context "when user didnt create the event" do
let(:user_2) { Fabricate(:user) }
let(:topic_1) { Fabricate(:topic, user: user_2) }