Skip to content

Commit c732bf0

Browse files
authored
[SHD-1410] Filter extra_users in context JSON (#540)
[SHD-1410](https://runway.powerhrg.com/backlog_items/SHD-1410) This pull request updates the as_json method in the Audiences::Context model to ensure that the extra_users field only includes users matching the default scope defined by Audiences.default_users_scope. Previously, extra_users were included directly; now, extra_users are filtered through the default scope using instance_exec.
1 parent 5205f51 commit c732bf0

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

audiences/app/models/audiences/context.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def as_json(...)
3939
{
4040
match_all: match_all,
4141
count: count,
42-
extra_users: extra_users,
42+
extra_users: extra_users.instance_exec(&Audiences.default_users_scope),
4343
criteria: criteria,
4444
}.as_json(...)
4545
end

audiences/spec/models/audiences/context_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,17 @@
9696
expect(owner.members_context.count).to eql 2
9797
end
9898
end
99+
100+
describe "#as_json" do
101+
it "does not include users not matching the default scope" do
102+
Audiences.config.default_users_scope = -> { where(active: true) }
103+
104+
active_user = create_user(active: true)
105+
inactive_user = create_user(active: false)
106+
107+
context = create_context(extra_users: [active_user, inactive_user])
108+
109+
expect(context.as_json["extra_users"]).to eql([active_user.as_json])
110+
end
111+
end
99112
end

0 commit comments

Comments
 (0)