indentlabs/notebook

View on GitHub
app/authorizers/attribute_authorizer.rb

Summary

Maintainability
A
1 hr
Test Coverage
class AttributeAuthorizer < ApplicationAuthorizer
  def self.creatable_by? user
    return false unless user.present?

    [
      true
    ].any?
  end

  def readable_by? user
    return true if PermissionService.user_owns_content?(user: user, content: resource)
    return true if PermissionService.user_owns_any_containing_universe?(user: user, content: resource)
    return true if PermissionService.user_can_contribute_to_containing_universe?(user: user, content: resource)
    return true if PermissionService.content_is_public?(content: resource)
    return true if PermissionService.content_is_in_a_public_universe?(content: resource)
    
    return false
  end

  def updatable_by? user
    [
      PermissionService.user_owns_content?(user: user, content: resource),
    ].any?
  end

  def deletable_by? user
    [
      PermissionService.user_owns_content?(user: user, content: resource),
    ].any?
  end
end