Sha256: ca3e358a4e6d0b72446edf0f9b749b0e1c239d4818f0b99898138e7dfe711108

Contents?: true

Size: 831 Bytes

Versions: 26

Compression:

Stored size: 831 Bytes

Contents

class Dorsale::ApplicationPolicy
  attr_reader :user, :subject

  def initialize(user, subject)
    @user    = user
    @subject = subject
  end

  def record
    subject
  end

  def policy(subject)
    Pundit.policy(user, subject)
  end

  def policy_scope(subject)
    Pundit.policy_scope(user, subject)
  end

  def self.inherited(klass)
    klass.define_subject_accessor!
  end

  def self.define_subject_accessor!
    # Dorsale::BillingMachine::InvoicePolicy -> :invoice
    object_type = to_s.demodulize.gsub("Policy", "").underscore.to_sym

    # Avoid user/subject conflict
    object_type = :other_user if object_type == :user

    send(:define_method, object_type) { subject }
  end

  class Scope
    attr_reader :user, :scope

    def initialize(user, scope)
      @user  = user
      @scope = scope
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
dorsale-3.14.9 app/policies/dorsale/application_policy.rb
dorsale-3.14.8 app/policies/dorsale/application_policy.rb
dorsale-3.14.7 app/policies/dorsale/application_policy.rb
dorsale-3.14.6 app/policies/dorsale/application_policy.rb
dorsale-3.14.5 app/policies/dorsale/application_policy.rb
dorsale-3.14.4 app/policies/dorsale/application_policy.rb
dorsale-3.14.3 app/policies/dorsale/application_policy.rb
dorsale-3.14.2 app/policies/dorsale/application_policy.rb
dorsale-3.14.1 app/policies/dorsale/application_policy.rb
dorsale-3.14.0 app/policies/dorsale/application_policy.rb
dorsale-3.13.0 app/policies/dorsale/application_policy.rb
dorsale-3.12.0 app/policies/dorsale/application_policy.rb
dorsale-3.11.0 app/policies/dorsale/application_policy.rb
dorsale-3.10.3 app/policies/dorsale/application_policy.rb
dorsale-3.10.2 app/policies/dorsale/application_policy.rb
dorsale-3.10.1 app/policies/dorsale/application_policy.rb
dorsale-3.10.0 app/policies/dorsale/application_policy.rb
dorsale-3.9.8 app/policies/dorsale/application_policy.rb
dorsale-3.9.7 app/policies/dorsale/application_policy.rb
dorsale-3.9.6 app/policies/dorsale/application_policy.rb