trabajo-afectivo/app/models/user/search_index.rb

75 lines
1.5 KiB
Ruby
Raw Normal View History

2016-10-19 03:11:36 +00:00
# Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
2016-07-06 06:13:44 +00:00
class User
module SearchIndex
extend ActiveSupport::Concern
2016-07-06 06:13:44 +00:00
=begin
lookup name of ref. objects
user = User.find(123)
attributes = user.search_index_attribute_lookup
returns
attributes # object with lookup data
=end
def search_index_attribute_lookup
attributes = super
attributes['permissions'] = []
permissions_with_child_ids.each do |permission_id|
permission = ::Permission.lookup(id: permission_id)
next if !permission
attributes['permissions'].push permission.name
end
attributes['role_ids'] = role_ids
attributes
end
=begin
2016-07-06 06:13:44 +00:00
get data to store in search index
user = User.find(2)
result = user.search_index_data
returns
result = {
attribute1: 'some value',
attribute2: ['value 1', 'value 2'],
...
}
=end
def search_index_data
attributes = {}
self.attributes.each do |key, value|
2016-07-06 06:13:44 +00:00
next if key == 'password'
next if !value
next if value.respond_to?('blank?') && value.blank?
2016-07-06 06:13:44 +00:00
attributes[key] = value
end
return if attributes.blank?
2016-07-06 06:13:44 +00:00
if attributes['organization_id'].present?
2016-07-06 06:13:44 +00:00
organization = Organization.lookup(id: attributes['organization_id'])
if organization
attributes['organization'] = organization.name
attributes['organization_ref'] = organization.search_index_data
end
end
attributes
end
end
end