Sha256: 50a00044aba1a43e8833c049c53ed4822c9600e58b3c264489ba83a008edfdc5

Contents?: true

Size: 846 Bytes

Versions: 10

Compression:

Stored size: 846 Bytes

Contents

# frozen_string_literal: true
module Decidim
  module Admin
    # A Rails routes constraint to only allow access to an Organization admin to
    # the organization dashboard.
    class OrganizationDashboardConstraint
      # Initializes the contraint.
      #
      # request [Rack::Request]
      def initialize(request)
        @request = request
      end

      # Checks if the user can access the organization dashboard.
      #
      # Returns boolean.
      def matches?
        OrganizationPolicy.new(user, organization).update?
      end

      private

      attr_reader :request

      def organization
        request.env["decidim.current_organization"]
      end

      def user
        return unless request.env["warden"].authenticate!(scope: :user)

        @user ||= request.env["warden"].user("user")
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
decidim-admin-0.0.1.alpha7 app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-0.0.1.alpha7 decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-admin-0.0.1.alpha6 app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-0.0.1.alpha6 decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-admin-0.0.1.alpha5 app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-0.0.1.alpha5 decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-admin-0.0.1.alpha4 app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-0.0.1.alpha4 decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-admin-0.0.1.alpha3 app/constraints/decidim/admin/organization_dashboard_constraint.rb
decidim-0.0.1.alpha3 decidim-admin/app/constraints/decidim/admin/organization_dashboard_constraint.rb