collection_ticket.rb 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. module SessionHelper::CollectionTicket
  3. module_function
  4. def session(collections, assets, user)
  5. # all ticket stuff
  6. collections[ Ticket::StateType.to_app_model ] = []
  7. Ticket::StateType.all.each do |item|
  8. assets = item.assets(assets)
  9. end
  10. collections[ Ticket::State.to_app_model ] = []
  11. Ticket::State.all.each do |item|
  12. assets = item.assets(assets)
  13. end
  14. collections[ Ticket::Priority.to_app_model ] = []
  15. Ticket::Priority.all.each do |item|
  16. assets = item.assets(assets)
  17. end
  18. collections[ Ticket::Article::Type.to_app_model ] = []
  19. Ticket::Article::Type.all.each do |item|
  20. assets = item.assets(assets)
  21. end
  22. collections[ Ticket::Article::Sender.to_app_model ] = []
  23. Ticket::Article::Sender.all.each do |item|
  24. assets = item.assets(assets)
  25. end
  26. collections[ Ticket::TimeAccounting::Type.to_app_model ] = []
  27. Ticket::TimeAccounting::Type.all.each do |item|
  28. assets = item.assets(assets)
  29. end
  30. if user.permissions?(['ticket.agent', 'admin.channel_email'])
  31. collections[ TextModule.to_app_model ] = []
  32. TextModulePolicy::Scope.new(user, TextModule).resolve.each do |item|
  33. assets = item.assets(assets)
  34. end
  35. [
  36. Macro,
  37. Signature,
  38. EmailAddress,
  39. Template,
  40. Ticket::SharedDraftStart,
  41. ].each do |klass|
  42. collections[ klass.to_app_model ] = []
  43. klass.all.each do |item|
  44. assets = item.assets(assets)
  45. end
  46. end
  47. end
  48. [collections, assets]
  49. end
  50. end