Sha256: 73a43cdd71d7ff7c6e72464bd9c2915fb721f1b7bd42cb7fd34513ca54087141

Contents?: true

Size: 1.08 KB

Versions: 11

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

# generado con pg_rails

class AccountPolicy < ApplicationPolicy
  class Scope < ApplicationPolicy::Scope
    def resolve
      if Current.namespace == :admin
        scope.all
      else
        ary = ActsAsTenant.without_tenant do
          Current.user.user_accounts.kept.not_discarded_by_user.pluck(:account_id)
        end
        scope.where(id: ary)
      end
    end
  end

  def update_invitation?
    user_belongs_to_account?
  end

  def puede_editar?
    Current.namespace == :admin || record.owner == Current.user
  end

  def puede_crear?
    user.present?
  end

  def puede_borrar?
    Current.namespace == :admin
  end

  def new_from_associable?
    false
  end

  def show?
    base_access_to_record?
  end

  def index?
    base_access_to_collection?
  end

  def base_access_to_collection?
    user.present?
  end

  def base_access_to_record?
    ua = user.user_account_for(record)
    Current.namespace == :admin || (ua.present? && !ua.ua_invite_pending?)
  end

  def user_belongs_to_account?
    user.user_account_for(record).present?
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pg_rails-7.6.21.pre.11 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.10 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.9 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.8 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.7 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.6 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.5 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.4 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.3 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.2 pg_engine/app/policies/account_policy.rb
pg_rails-7.6.21.pre.1 pg_engine/app/policies/account_policy.rb