answer_policy.rb 677 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. class KnowledgeBase::AnswerPolicy < ApplicationPolicy
  3. def show?
  4. return true if access_editor?
  5. record.visible? ||
  6. (access_reader? && record.visible_internally?)
  7. end
  8. def show_public?
  9. access_editor? || record.visible?
  10. end
  11. def create?
  12. access_editor?
  13. end
  14. def update?
  15. access_editor?
  16. end
  17. def destroy?
  18. access_editor?
  19. end
  20. private
  21. def access
  22. @access ||= KnowledgeBase::EffectivePermission.new(user, record.category).access_effective
  23. end
  24. def access_editor?
  25. access == 'editor'
  26. end
  27. def access_reader?
  28. access == 'reader'
  29. end
  30. end