12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- class Organization
- module Search
- extend ActiveSupport::Concern
- include CanSearch
- # methods defined here are going to extend the class, not the instance of it
- class_methods do
- =begin
- search organizations preferences
- result = Organization.search_preferences(user_model)
- returns if user has permissions to search
- result = {
- prio: 1000,
- direct_search_index: true
- }
- returns if user has no permissions to search
- result = false
- =end
- def search_preferences(current_user)
- return false if !current_user.permissions?(['ticket.agent', 'ticket.customer', 'admin.organization'])
- {
- prio: 1500,
- direct_search_index: !customer_only?(current_user),
- }
- end
- def customer_only?(current_user)
- return true if current_user.permissions?('ticket.customer') && !current_user.permissions?(['admin.organization', 'ticket.agent'])
- false
- end
- def search_default_sort_by
- %w[active updated_at]
- end
- def search_default_order_by
- %w[desc desc]
- end
- def search_params_pre(params)
- return if !customer_only?(params[:current_user])
- params[:ids] = params[:current_user].all_organization_ids
- end
- end
- end
- end
|