Skip to content

Commit

Permalink
Feature flag for data dashboard: Make sure that only super-admins can…
Browse files Browse the repository at this point in the history
… access the `statistics` field.

Reference: CV2-5401.
  • Loading branch information
caiosba committed Nov 7, 2024
1 parent 0c60a3a commit 402accf
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
1 change: 1 addition & 0 deletions app/graph/types/team_type.rb
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,7 @@ def api_keys
end

def statistics(period:, language: nil, platform: nil)
raise CheckPermissions::AccessDenied.new("You don't have access to this field.") unless User.current&.is_admin
TeamStatistics.new(object, period, language, platform)
end
end
26 changes: 24 additions & 2 deletions test/controllers/graphql_controller_11_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -201,8 +201,8 @@ def teardown
end
end

test "should get team statistics" do
user = create_user
test "should get team statistics if super admin" do
user = create_user is_admin: true
team = create_team
create_team_user user: user, team: team, role: 'admin'

Expand Down Expand Up @@ -244,6 +244,28 @@ def teardown

post :create, params: { query: query }
assert_response :success
assert_not_nil JSON.parse(@response.body).dig('data', 'team', 'statistics')
end

test "should not get team statistics if not super admin" do
user = create_user is_admin: false
team = create_team
create_team_user user: user, team: team, role: 'admin'

authenticate_with_user(user)
query = <<~GRAPHQL
query {
team(slug: "#{team.slug}") {
statistics(period: "past_week", platform: "whatsapp", language: "en") {
number_of_articles_created_by_date
}
}
}
GRAPHQL

post :create, params: { query: query }
assert_response :success
assert_nil JSON.parse(@response.body).dig('data', 'team', 'statistics')
end

test "should not get requests if interval is more than one month" do
Expand Down

0 comments on commit 402accf

Please sign in to comment.