pundit_policy.rb 609 B

12345678910111213141516171819202122232425262728293031323334
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. module PunditPolicy
  3. attr_reader :user, :custom_exception
  4. def initialize(user, context)
  5. @user = user
  6. user_required! if user_required?
  7. initialize_context(context)
  8. end
  9. def user_required?
  10. true
  11. end
  12. def user_required!
  13. return if user
  14. raise Exceptions::Forbidden, __('Authentication required')
  15. end
  16. private
  17. def not_authorized(details = nil)
  18. if details
  19. details = "Not authorized (#{details})!"
  20. end
  21. @custom_exception = Exceptions::Forbidden.new(details)
  22. false
  23. end
  24. end