Sha256: 51450095ea2aea8e7772904507fcb191e5795a42ada3b264b790bfa08a610b81
Contents?: true
Size: 1.3 KB
Versions: 25
Compression:
Stored size: 1.3 KB
Contents
# frozen_string_literal: true module Decidim module Verifications # Finds authorizations by different criteria class Authorizations < Rectify::Query # Initializes the class. # # @param organization [Organization] The organization where this authorization belongs to # @param name [String] The name of an authorization method # @param user [User] A user to find authorizations for # @param granted [Boolean] Whether the authorization is granted or not def initialize(organization:, user: nil, name: nil, granted: nil) @organization = organization @user = user @name = name @granted = granted end # Finds the Authorizations for the given method # # Returns an ActiveRecord::Relation. def query scope = Decidim::Authorization.left_outer_joins(:organization).where(decidim_organizations: { id: organization.id }) scope = scope.where(name: name) unless name.nil? scope = scope.where(user: user) unless user.nil? case granted when true scope = scope.where.not(granted_at: nil) when false scope = scope.where(granted_at: nil) end scope end private attr_reader :user, :name, :granted, :organization end end end
Version data entries
25 entries across 25 versions & 1 rubygems