Sha256: e2ffec5bd7f4931772ee8a8dd9004450cd506747c7b4cdd8ab54df56985b846e

Contents?: true

Size: 1.31 KB

Versions: 34

Compression:

Stored size: 1.31 KB

Contents

class ProfilePolicy < ApplicationPolicy
  def index?
    true if user.try(:has_role?, 'Librarian')
  end

  def show?
    case user.try(:role).try(:name)
    when 'Administrator'
      true
    when 'Librarian'
      return true if record == user.profile
      true if %w(Librarian User Guest).include?(record.required_role.name)
    when 'User'
      return true if record == user.profile
      true if %w(User Guest).include?(record.required_role.name)
    end
  end

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

  def update?
    case user.try(:role).try(:name)
    when 'Administrator'
      true
    when 'Librarian'
      unless record.user.try(:has_role?, 'Administrator')
        true if %w(User Guest Librarian).include?(record.required_role.name)
      end
    when 'User'
      return true if record == user.profile
    end
  end

  def destroy?
    return false unless user
    return false unless user.try(:has_role?, 'Librarian')
    if record.user
      if record != user.profile && record.user.id != 1
        if defined?(EnjuCirculation)
          if record.user.checkouts.not_returned.empty?
            true if record.user.deletable_by?(user)
          end
        else
          true if record.user.deletable_by?(user)
        end
      else
        false
      end
    else
      true
    end
  end
end

Version data entries

34 entries across 33 versions & 2 rubygems

Version Path
enju_seed-0.3.6 app/policies/profile_policy.rb
enju_seed-0.3.5 app/policies/profile_policy.rb
enju_seed-0.4.0.rc.2 app/policies/profile_policy.rb
enju_seed-0.3.4 app/policies/profile_policy.rb
enju_seed-0.4.0.rc.1 app/policies/profile_policy.rb
enju_seed-0.4.0.beta.3 app/policies/profile_policy.rb
enju_seed-0.5.0.beta.1 app/policies/profile_policy.rb
enju_seed-0.4.0.beta.2 app/policies/profile_policy.rb
enju_seed-0.3.3 app/policies/profile_policy.rb
enju_seed-0.3.2 app/policies/profile_policy.rb
enju_seed-0.3.1 app/policies/profile_policy.rb
enju_seed-0.3.0 app/policies/profile_policy.rb
enju_seed-0.3.0.rc.1 app/policies/profile_policy.rb
enju_seed-0.3.0.beta.7 app/policies/profile_policy.rb
enju_seed-0.4.0.beta.1 app/policies/profile_policy.rb
enju_seed-0.3.0.beta.6 app/policies/profile_policy.rb
enju_seed-0.2.3 app/policies/profile_policy.rb
enju_seed-0.3.0.beta.4 app/policies/profile_policy.rb
enju_seed-0.2.2 app/policies/profile_policy.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/enju_seed-0.2.0/app/policies/profile_policy.rb