Sha256: 74fc84f6d1cef85473a2cd251c4bd2d98dd423b95a6e299ff8050adb0dbd1716

Contents?: true

Size: 950 Bytes

Versions: 30

Compression:

Stored size: 950 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Initiatives
    module Admin
      # Class that retrieves manageable initiatives for the given user.
      # Regular users will get only their initiatives. Administrators will
      # retrieve all initiatives.
      class ManageableInitiatives < Decidim::Query
        # Syntactic sugar to initialize the class and return the queried objects
        #
        # user - Decidim::User
        def self.for(user)
          new(user).query
        end

        # Initializes the class.
        #
        # user - Decidim::User
        def initialize(user)
          @user = user
        end

        # Retrieves all initiatives / Initiatives created by the user.
        def query
          return Initiative.where(organization: @user.organization) if @user.admin?

          Initiative.where(id: InitiativesCreated.by(@user) + InitiativesPromoted.by(@user))
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
decidim-initiatives-0.30.0.rc3 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.30.0.rc2 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.30.0.rc1 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.29.2 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.28.5 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.29.1 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.28.4 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.27.9 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.29.0 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.28.3 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.27.8 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.29.0.rc4 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.29.0.rc3 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.29.0.rc2 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.29.0.rc1 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.28.2 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.27.7 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.28.1 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.27.6 app/queries/decidim/initiatives/admin/manageable_initiatives.rb
decidim-initiatives-0.28.0 app/queries/decidim/initiatives/admin/manageable_initiatives.rb