Sha256: 10722c75fe44622e31d4187929c27fb22ee37e5ff951647c1b8ef0bcab51bb91
Contents?: true
Size: 993 Bytes
Versions: 10
Compression:
Stored size: 993 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? user && user.organization == organization && ability.can?(:read, :admin_dashboard) 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 def ability Decidim::Admin::Abilities::Base.new(user, current_organization: organization) end end end end
Version data entries
10 entries across 10 versions & 2 rubygems