Class: Decidim::AuthorizedUsers
- Defined in:
- app/queries/decidim/authorized_users.rb
Overview
This query counts registered users from a collection of organizations in an optional interval of time.
Instance Method Summary collapse
-
#initialize(organization:, handlers: [], strict: false) ⇒ AuthorizedUsers
constructor
A new instance of AuthorizedUsers.
- #query ⇒ Object
Methods inherited from Query
#cached_query, #each, #eager?, #exists?, merge, #none?, #relation?, #|
Constructor Details
#initialize(organization:, handlers: [], strict: false) ⇒ AuthorizedUsers
Returns a new instance of AuthorizedUsers.
7 8 9 10 11 12 |
# File 'app/queries/decidim/authorized_users.rb', line 7 def initialize(organization:, handlers: [], strict: false) @organization = organization @valid_types = organization. @handlers = strict ? handlers : handlers&.select { |type| @valid_types.include?(type) } || [] @users = organization.users.not_deleted.not_blocked.confirmed end |
Instance Method Details
#query ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/queries/decidim/authorized_users.rb', line 14 def query return @users if @handlers.blank? verified_users = Decidim::Authorization.select(:decidim_user_id) .where(decidim_user_id: @users.select(:id)) .where.not(granted_at: nil) .where(name: @handlers) .group(:decidim_user_id) .having("COUNT(distinct name) = ?", @handlers.count) @users = @users.where(id: verified_users) end |