Sha256: ff7470a64310fabe26348a8062be90e6f465751d8a6d20ebf1031a913ebf5ca4

Contents?: true

Size: 1.36 KB

Versions: 39

Compression:

Stored size: 1.36 KB

Contents

class ManifestationPolicy < ApplicationPolicy
  def index?
    true
  end

  def show?
    case user.try(:role).try(:name)
    when 'Administrator'
      true
    when 'Librarian'
      true if record.required_role_id <= 3
    when 'User'
      true if record.required_role_id <= 2
    else
      true if record.required_role_id <= 1
    end
  end

  def create?
    true if user.try(:has_role?, 'Librarian')
  end

  def edit?
    case user.try(:role).try(:name)
    when 'Administrator'
      true
    when 'Librarian'
      true if record.required_role_id <= 3
    when 'User'
      true if record.required_role_id <= 2
    end
  end

  def update?
    true if user.try(:has_role?, 'Librarian')
  end

  def destroy?
    if record.items.empty?
      if !record.try(:is_reserved?)
        if record.series_master?
          if record.children.empty?
            case user.try(:role).try(:name)
            when 'Administrator'
              true
            when 'Librarian'
              true if record.required_role_id <= 3
            else
              false
            end
          else
            false
          end
        else
          case user.try(:role).try(:name)
          when 'Administrator'
            true
          when 'Librarian'
            true if record.required_role_id <= 3
          else
            false
          end
        end
      end
    end
  end
end

Version data entries

39 entries across 38 versions & 2 rubygems

Version Path
enju_biblio-0.3.18 app/policies/manifestation_policy.rb
enju_biblio-0.3.17 app/policies/manifestation_policy.rb
enju_biblio-0.3.16 app/policies/manifestation_policy.rb
enju_biblio-0.3.15 app/policies/manifestation_policy.rb
enju_biblio-0.3.14 app/policies/manifestation_policy.rb
enju_biblio-0.3.13 app/policies/manifestation_policy.rb
enju_biblio-0.3.12 app/policies/manifestation_policy.rb
enju_biblio-0.3.11 app/policies/manifestation_policy.rb
enju_biblio-0.3.10 app/policies/manifestation_policy.rb
enju_biblio-0.3.10.rc.3 app/policies/manifestation_policy.rb
enju_biblio-0.3.10.rc.2 app/policies/manifestation_policy.rb
enju_biblio-0.3.10.rc.1 app/policies/manifestation_policy.rb
enju_biblio-0.3.9 app/policies/manifestation_policy.rb
enju_biblio-0.4.0.rc.1 app/policies/manifestation_policy.rb
enju_biblio-0.3.8 app/policies/manifestation_policy.rb
enju_biblio-0.3.7 app/policies/manifestation_policy.rb
enju_biblio-0.3.6 app/policies/manifestation_policy.rb
enju_biblio-0.4.0.beta.2 app/policies/manifestation_policy.rb
enju_biblio-0.4.0.beta.1 app/policies/manifestation_policy.rb
enju_biblio-0.3.5 app/policies/manifestation_policy.rb