Corrected with rubocop cop 'Style/RedundantSelf'.
This commit is contained in:
parent
12c0ae1150
commit
67c4215554
61 changed files with 348 additions and 350 deletions
|
@ -187,8 +187,6 @@ Style/Documentation:
|
||||||
Description: 'Document classes and non-namespace modules.'
|
Description: 'Document classes and non-namespace modules.'
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/RedundantSelf:
|
|
||||||
Enabled: false
|
|
||||||
Style/CommentIndentation:
|
Style/CommentIndentation:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Style/GlobalVars:
|
Style/GlobalVars:
|
||||||
|
|
|
@ -80,13 +80,13 @@ returns
|
||||||
|
|
||||||
# only use object attributes
|
# only use object attributes
|
||||||
data = {}
|
data = {}
|
||||||
self.new.attributes.each {|item|
|
new.attributes.each {|item|
|
||||||
next if !params.key?(item[0])
|
next if !params.key?(item[0])
|
||||||
data[item[0].to_sym] = params[item[0]]
|
data[item[0].to_sym] = params[item[0]]
|
||||||
}
|
}
|
||||||
|
|
||||||
# we do want to set this via database
|
# we do want to set this via database
|
||||||
self.param_validation(data)
|
param_validation(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -118,7 +118,7 @@ returns
|
||||||
list_of_items.each {|item|
|
list_of_items.each {|item|
|
||||||
list.push( assoc.klass.find(item) )
|
list.push( assoc.klass.find(item) )
|
||||||
}
|
}
|
||||||
self.send( assoc.name.to_s + '=', list )
|
send( assoc.name.to_s + '=', list )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ returns
|
||||||
self.class.reflect_on_all_associations.map { |assoc|
|
self.class.reflect_on_all_associations.map { |assoc|
|
||||||
real_key = assoc.name.to_s[0, assoc.name.to_s.length - 1] + '_ids'
|
real_key = assoc.name.to_s[0, assoc.name.to_s.length - 1] + '_ids'
|
||||||
if self.respond_to?( real_key )
|
if self.respond_to?( real_key )
|
||||||
attributes[ real_key ] = self.send( real_key )
|
attributes[ real_key ] = send( real_key )
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
attributes
|
attributes
|
||||||
|
@ -190,8 +190,8 @@ returns
|
||||||
def fill_up_user_create
|
def fill_up_user_create
|
||||||
if self.class.column_names.include? 'updated_by_id'
|
if self.class.column_names.include? 'updated_by_id'
|
||||||
if UserInfo.current_user_id
|
if UserInfo.current_user_id
|
||||||
if self.updated_by_id && self.updated_by_id != UserInfo.current_user_id
|
if updated_by_id && updated_by_id != UserInfo.current_user_id
|
||||||
logger.info "NOTICE create - self.updated_by_id is different: #{self.updated_by_id}/#{UserInfo.current_user_id}"
|
logger.info "NOTICE create - self.updated_by_id is different: #{updated_by_id}/#{UserInfo.current_user_id}"
|
||||||
end
|
end
|
||||||
self.updated_by_id = UserInfo.current_user_id
|
self.updated_by_id = UserInfo.current_user_id
|
||||||
end
|
end
|
||||||
|
@ -201,8 +201,8 @@ returns
|
||||||
|
|
||||||
return if !UserInfo.current_user_id
|
return if !UserInfo.current_user_id
|
||||||
|
|
||||||
if self.created_by_id && self.created_by_id != UserInfo.current_user_id
|
if created_by_id && created_by_id != UserInfo.current_user_id
|
||||||
logger.info "NOTICE create - self.created_by_id is different: #{self.created_by_id}/#{UserInfo.current_user_id}"
|
logger.info "NOTICE create - self.created_by_id is different: #{created_by_id}/#{UserInfo.current_user_id}"
|
||||||
end
|
end
|
||||||
self.created_by_id = UserInfo.current_user_id
|
self.created_by_id = UserInfo.current_user_id
|
||||||
end
|
end
|
||||||
|
@ -229,29 +229,29 @@ returns
|
||||||
end
|
end
|
||||||
|
|
||||||
def cache_update(o)
|
def cache_update(o)
|
||||||
self.cache_delete if self.respond_to?('cache_delete')
|
cache_delete if self.respond_to?('cache_delete')
|
||||||
o.cache_delete if o.respond_to?('cache_delete')
|
o.cache_delete if o.respond_to?('cache_delete')
|
||||||
end
|
end
|
||||||
|
|
||||||
def cache_delete
|
def cache_delete
|
||||||
|
|
||||||
# delete id caches
|
# delete id caches
|
||||||
key = self.class.to_s + '::' + self.id.to_s
|
key = self.class.to_s + '::' + id.to_s
|
||||||
Cache.delete( key.to_s )
|
Cache.delete( key.to_s )
|
||||||
key = self.class.to_s + ':f:' + self.id.to_s
|
key = self.class.to_s + ':f:' + id.to_s
|
||||||
Cache.delete( key.to_s )
|
Cache.delete( key.to_s )
|
||||||
|
|
||||||
# delete old name / login caches
|
# delete old name / login caches
|
||||||
if self.changed?
|
if self.changed?
|
||||||
if self.changes.key?('name')
|
if changes.key?('name')
|
||||||
name = self.changes['name'][0].to_s
|
name = changes['name'][0].to_s
|
||||||
key = self.class.to_s + '::' + name
|
key = self.class.to_s + '::' + name
|
||||||
Cache.delete( key.to_s )
|
Cache.delete( key.to_s )
|
||||||
key = self.class.to_s + ':f:' + name
|
key = self.class.to_s + ':f:' + name
|
||||||
Cache.delete( key.to_s )
|
Cache.delete( key.to_s )
|
||||||
end
|
end
|
||||||
if self.changes.key?('login')
|
if changes.key?('login')
|
||||||
name = self.changes['login'][0].to_s
|
name = changes['login'][0].to_s
|
||||||
key = self.class.to_s + '::' + name
|
key = self.class.to_s + '::' + name
|
||||||
Cache.delete( key.to_s )
|
Cache.delete( key.to_s )
|
||||||
key = self.class.to_s + ':f:' + name
|
key = self.class.to_s + ':f:' + name
|
||||||
|
@ -269,26 +269,26 @@ returns
|
||||||
|
|
||||||
return if !self[:login]
|
return if !self[:login]
|
||||||
|
|
||||||
key = self.class.to_s + '::' + self.login.to_s
|
key = self.class.to_s + '::' + login.to_s
|
||||||
Cache.delete( key.to_s )
|
Cache.delete( key.to_s )
|
||||||
key = self.class.to_s + ':f:' + self.login.to_s
|
key = self.class.to_s + ':f:' + login.to_s
|
||||||
Cache.delete( key.to_s )
|
Cache.delete( key.to_s )
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.cache_set(data_id, data, full = false)
|
def self.cache_set(data_id, data, full = false)
|
||||||
if !full
|
if !full
|
||||||
key = self.to_s + '::' + data_id.to_s
|
key = to_s + '::' + data_id.to_s
|
||||||
else
|
else
|
||||||
key = self.to_s + ':f:' + data_id.to_s
|
key = to_s + ':f:' + data_id.to_s
|
||||||
end
|
end
|
||||||
Cache.write( key.to_s, data )
|
Cache.write( key.to_s, data )
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.cache_get(data_id, full = false)
|
def self.cache_get(data_id, full = false)
|
||||||
if !full
|
if !full
|
||||||
key = self.to_s + '::' + data_id.to_s
|
key = to_s + '::' + data_id.to_s
|
||||||
else
|
else
|
||||||
key = self.to_s + ':f:' + data_id.to_s
|
key = to_s + ':f:' + data_id.to_s
|
||||||
end
|
end
|
||||||
Cache.get( key.to_s )
|
Cache.get( key.to_s )
|
||||||
end
|
end
|
||||||
|
@ -309,32 +309,32 @@ returns
|
||||||
|
|
||||||
def self.lookup(data)
|
def self.lookup(data)
|
||||||
if data[:id]
|
if data[:id]
|
||||||
cache = self.cache_get( data[:id] )
|
cache = cache_get( data[:id] )
|
||||||
return cache if cache
|
return cache if cache
|
||||||
|
|
||||||
record = self.find_by( id: data[:id] )
|
record = find_by( id: data[:id] )
|
||||||
self.cache_set( data[:id], record )
|
cache_set( data[:id], record )
|
||||||
return record
|
return record
|
||||||
elsif data[:name]
|
elsif data[:name]
|
||||||
cache = self.cache_get( data[:name] )
|
cache = cache_get( data[:name] )
|
||||||
return cache if cache
|
return cache if cache
|
||||||
|
|
||||||
records = self.where( name: data[:name] )
|
records = where( name: data[:name] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
if record.name == data[:name]
|
if record.name == data[:name]
|
||||||
self.cache_set( data[:name], record )
|
cache_set( data[:name], record )
|
||||||
return record
|
return record
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
elsif data[:login]
|
elsif data[:login]
|
||||||
cache = self.cache_get( data[:login] )
|
cache = cache_get( data[:login] )
|
||||||
return cache if cache
|
return cache if cache
|
||||||
|
|
||||||
records = self.where( login: data[:login] )
|
records = where( login: data[:login] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
if record.login == data[:login]
|
if record.login == data[:login]
|
||||||
self.cache_set( data[:login], record )
|
cache_set( data[:login], record )
|
||||||
return record
|
return record
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
@ -358,25 +358,25 @@ returns
|
||||||
|
|
||||||
def self.create_if_not_exists(data)
|
def self.create_if_not_exists(data)
|
||||||
if data[:id]
|
if data[:id]
|
||||||
record = self.find_by( id: data[:id] )
|
record = find_by( id: data[:id] )
|
||||||
return record if record
|
return record if record
|
||||||
elsif data[:name]
|
elsif data[:name]
|
||||||
records = self.where( name: data[:name] )
|
records = where( name: data[:name] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
return record if record.name == data[:name]
|
return record if record.name == data[:name]
|
||||||
}
|
}
|
||||||
elsif data[:login]
|
elsif data[:login]
|
||||||
records = self.where( login: data[:login] )
|
records = where( login: data[:login] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
return record if record.login == data[:login]
|
return record if record.login == data[:login]
|
||||||
}
|
}
|
||||||
elsif data[:locale] && data[:source]
|
elsif data[:locale] && data[:source]
|
||||||
records = self.where( locale: data[:locale], source: data[:source] )
|
records = where( locale: data[:locale], source: data[:source] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
return record if record.source == data[:source]
|
return record if record.source == data[:source]
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
self.create(data)
|
create(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -393,45 +393,45 @@ returns
|
||||||
|
|
||||||
def self.create_or_update(data)
|
def self.create_or_update(data)
|
||||||
if data[:id]
|
if data[:id]
|
||||||
records = self.where( id: data[:id] )
|
records = where( id: data[:id] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
record.update_attributes( data )
|
record.update_attributes( data )
|
||||||
return record
|
return record
|
||||||
}
|
}
|
||||||
record = self.new( data )
|
record = new( data )
|
||||||
record.save
|
record.save
|
||||||
return record
|
return record
|
||||||
elsif data[:name]
|
elsif data[:name]
|
||||||
records = self.where( name: data[:name] )
|
records = where( name: data[:name] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
if record.name == data[:name]
|
if record.name == data[:name]
|
||||||
record.update_attributes( data )
|
record.update_attributes( data )
|
||||||
return record
|
return record
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
record = self.new( data )
|
record = new( data )
|
||||||
record.save
|
record.save
|
||||||
return record
|
return record
|
||||||
elsif data[:login]
|
elsif data[:login]
|
||||||
records = self.where( login: data[:login] )
|
records = where( login: data[:login] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
if record.login.downcase == data[:login].downcase
|
if record.login.downcase == data[:login].downcase
|
||||||
record.update_attributes( data )
|
record.update_attributes( data )
|
||||||
return record
|
return record
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
record = self.new( data )
|
record = new( data )
|
||||||
record.save
|
record.save
|
||||||
return record
|
return record
|
||||||
elsif data[:locale]
|
elsif data[:locale]
|
||||||
records = self.where( locale: data[:locale] )
|
records = where( locale: data[:locale] )
|
||||||
records.each {|record|
|
records.each {|record|
|
||||||
if record.locale.downcase == data[:locale].downcase
|
if record.locale.downcase == data[:locale].downcase
|
||||||
record.update_attributes( data )
|
record.update_attributes( data )
|
||||||
return record
|
return record
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
record = self.new( data )
|
record = new( data )
|
||||||
record.save
|
record.save
|
||||||
return record
|
return record
|
||||||
else
|
else
|
||||||
|
@ -457,7 +457,7 @@ end
|
||||||
end
|
end
|
||||||
|
|
||||||
def latest_change_set_from_observer
|
def latest_change_set_from_observer
|
||||||
self.class.latest_change_set(self.updated_at)
|
self.class.latest_change_set(updated_at)
|
||||||
end
|
end
|
||||||
|
|
||||||
def latest_change_set_from_observer_destroy
|
def latest_change_set_from_observer_destroy
|
||||||
|
@ -465,7 +465,7 @@ end
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.latest_change_set(updated_at)
|
def self.latest_change_set(updated_at)
|
||||||
key = "#{self.new.class.name}_latest_change"
|
key = "#{new.class.name}_latest_change"
|
||||||
expires_in = 31_536_000 # 1 year
|
expires_in = 31_536_000 # 1 year
|
||||||
|
|
||||||
if updated_at.nil?
|
if updated_at.nil?
|
||||||
|
@ -488,17 +488,17 @@ returns
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.latest_change
|
def self.latest_change
|
||||||
key = "#{self.new.class.name}_latest_change"
|
key = "#{new.class.name}_latest_change"
|
||||||
updated_at = Cache.get( key )
|
updated_at = Cache.get( key )
|
||||||
|
|
||||||
logger.debug "request latest_change for #{key}/#{updated_at}"
|
logger.debug "request latest_change for #{key}/#{updated_at}"
|
||||||
|
|
||||||
# if we do not have it cached, do lookup
|
# if we do not have it cached, do lookup
|
||||||
if !updated_at
|
if !updated_at
|
||||||
o = self.select(:updated_at).order(updated_at: :desc).limit(1).first
|
o = select(:updated_at).order(updated_at: :desc).limit(1).first
|
||||||
if o
|
if o
|
||||||
updated_at = o.updated_at
|
updated_at = o.updated_at
|
||||||
self.latest_change_set(updated_at)
|
latest_change_set(updated_at)
|
||||||
end
|
end
|
||||||
logger.debug "lookup latest_change for #{key}/#{updated_at}"
|
logger.debug "lookup latest_change for #{key}/#{updated_at}"
|
||||||
end
|
end
|
||||||
|
@ -544,12 +544,12 @@ class OwnModel < ApplicationModel
|
||||||
|
|
||||||
# return if we run import mode
|
# return if we run import mode
|
||||||
return if Setting.get('import_mode')
|
return if Setting.get('import_mode')
|
||||||
logger.debug "#{ self.class.name }.find(#{ self.id }) notify created " + self.created_at.to_s
|
logger.debug "#{ self.class.name }.find(#{ id }) notify created " + created_at.to_s
|
||||||
class_name = self.class.name
|
class_name = self.class.name
|
||||||
class_name.gsub!(/::/, '')
|
class_name.gsub!(/::/, '')
|
||||||
Sessions.broadcast(
|
Sessions.broadcast(
|
||||||
event: class_name + ':create',
|
event: class_name + ':create',
|
||||||
data: { id: self.id, updated_at: self.updated_at }
|
data: { id: id, updated_at: updated_at }
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -573,12 +573,12 @@ class OwnModel < ApplicationModel
|
||||||
|
|
||||||
# return if we run import mode
|
# return if we run import mode
|
||||||
return if Setting.get('import_mode')
|
return if Setting.get('import_mode')
|
||||||
logger.debug "#{ self.class.name }.find(#{ self.id }) notify UPDATED " + self.updated_at.to_s
|
logger.debug "#{ self.class.name }.find(#{ id }) notify UPDATED " + updated_at.to_s
|
||||||
class_name = self.class.name
|
class_name = self.class.name
|
||||||
class_name.gsub!(/::/, '')
|
class_name.gsub!(/::/, '')
|
||||||
Sessions.broadcast(
|
Sessions.broadcast(
|
||||||
event: class_name + ':update',
|
event: class_name + ':update',
|
||||||
data: { id: self.id, updated_at: self.updated_at }
|
data: { id: id, updated_at: updated_at }
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -602,12 +602,12 @@ class OwnModel < ApplicationModel
|
||||||
|
|
||||||
# return if we run import mode
|
# return if we run import mode
|
||||||
return if Setting.get('import_mode')
|
return if Setting.get('import_mode')
|
||||||
logger.debug "#{ self.class.name }.find(#{ self.id }) notify TOUCH " + self.updated_at.to_s
|
logger.debug "#{ self.class.name }.find(#{ id }) notify TOUCH " + updated_at.to_s
|
||||||
class_name = self.class.name
|
class_name = self.class.name
|
||||||
class_name.gsub!(/::/, '')
|
class_name.gsub!(/::/, '')
|
||||||
Sessions.broadcast(
|
Sessions.broadcast(
|
||||||
event: class_name + ':touch',
|
event: class_name + ':touch',
|
||||||
data: { id: self.id, updated_at: self.updated_at }
|
data: { id: id, updated_at: updated_at }
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -630,12 +630,12 @@ class OwnModel < ApplicationModel
|
||||||
|
|
||||||
# return if we run import mode
|
# return if we run import mode
|
||||||
return if Setting.get('import_mode')
|
return if Setting.get('import_mode')
|
||||||
logger.debug "#{ self.class.name }.find(#{ self.id }) notify DESTOY " + self.updated_at.to_s
|
logger.debug "#{ self.class.name }.find(#{ id }) notify DESTOY " + updated_at.to_s
|
||||||
class_name = self.class.name
|
class_name = self.class.name
|
||||||
class_name.gsub!(/::/, '')
|
class_name.gsub!(/::/, '')
|
||||||
Sessions.broadcast(
|
Sessions.broadcast(
|
||||||
event: class_name + ':destroy',
|
event: class_name + ':destroy',
|
||||||
data: { id: self.id, updated_at: self.updated_at }
|
data: { id: id, updated_at: updated_at }
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -672,7 +672,7 @@ update search index, if configured - will be executed automatically
|
||||||
|
|
||||||
# start background job to transfer data to search index
|
# start background job to transfer data to search index
|
||||||
return if !SearchIndexBackend.enabled?
|
return if !SearchIndexBackend.enabled?
|
||||||
Delayed::Job.enqueue( ApplicationModel::BackgroundJobSearchIndex.new( self.class.to_s, self.id ) )
|
Delayed::Job.enqueue( ApplicationModel::BackgroundJobSearchIndex.new( self.class.to_s, id ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -686,7 +686,7 @@ delete search index object, will be executed automatically
|
||||||
|
|
||||||
def search_index_destroy
|
def search_index_destroy
|
||||||
return if !self.class.search_index_support_config
|
return if !self.class.search_index_support_config
|
||||||
SearchIndexBackend.remove( self.class.to_s, self.id )
|
SearchIndexBackend.remove( self.class.to_s, id )
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -699,9 +699,9 @@ reload search index with full data
|
||||||
|
|
||||||
def self.search_index_reload
|
def self.search_index_reload
|
||||||
return if !@search_index_support_config
|
return if !@search_index_support_config
|
||||||
all_ids = self.select('id').all.order('created_at DESC')
|
all_ids = select('id').all.order('created_at DESC')
|
||||||
all_ids.each { |item_with_id|
|
all_ids.each { |item_with_id|
|
||||||
item = self.find( item_with_id.id )
|
item = find( item_with_id.id )
|
||||||
item.search_index_update_backend
|
item.search_index_update_backend
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -762,7 +762,7 @@ log object update activity stream, if configured - will be executed automaticall
|
||||||
end
|
end
|
||||||
|
|
||||||
log = false
|
log = false
|
||||||
self.changes.each {|key, _value|
|
changes.each {|key, _value|
|
||||||
|
|
||||||
# do not log created_at and updated_at attributes
|
# do not log created_at and updated_at attributes
|
||||||
next if ignore_attributes[key.to_sym] == true
|
next if ignore_attributes[key.to_sym] == true
|
||||||
|
@ -786,7 +786,7 @@ delete object activity stream, will be executed automatically
|
||||||
|
|
||||||
def activity_stream_destroy
|
def activity_stream_destroy
|
||||||
return if !self.class.activity_stream_support_config
|
return if !self.class.activity_stream_support_config
|
||||||
ActivityStream.remove( self.class.to_s, self.id )
|
ActivityStream.remove( self.class.to_s, id )
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -819,7 +819,7 @@ log object create history, if configured - will be executed automatically
|
||||||
def history_create
|
def history_create
|
||||||
return if !self.class.history_support_config
|
return if !self.class.history_support_config
|
||||||
#logger.debug 'create ' + self.changes.inspect
|
#logger.debug 'create ' + self.changes.inspect
|
||||||
self.history_log( 'created', self.created_by_id )
|
history_log( 'created', created_by_id )
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -842,8 +842,8 @@ log object update history with all updated attributes, if configured - will be e
|
||||||
|
|
||||||
# new record also triggers update, so ignore new records
|
# new record also triggers update, so ignore new records
|
||||||
changes = self.changes
|
changes = self.changes
|
||||||
if self.history_changes_last_done
|
if history_changes_last_done
|
||||||
self.history_changes_last_done.each {|key, value|
|
history_changes_last_done.each {|key, value|
|
||||||
if changes.key?(key) && changes[key] == value
|
if changes.key?(key) && changes[key] == value
|
||||||
changes.delete(key)
|
changes.delete(key)
|
||||||
end
|
end
|
||||||
|
@ -884,8 +884,8 @@ log object update history with all updated attributes, if configured - will be e
|
||||||
value_id[0] = value[0]
|
value_id[0] = value[0]
|
||||||
value_id[1] = value[1]
|
value_id[1] = value[1]
|
||||||
|
|
||||||
if self.respond_to?( attribute_name ) && self.send(attribute_name)
|
if self.respond_to?( attribute_name ) && send(attribute_name)
|
||||||
relation_class = self.send(attribute_name).class
|
relation_class = send(attribute_name).class
|
||||||
if relation_class && value_id[0]
|
if relation_class && value_id[0]
|
||||||
relation_model = relation_class.lookup( id: value_id[0] )
|
relation_model = relation_class.lookup( id: value_id[0] )
|
||||||
if relation_model
|
if relation_model
|
||||||
|
@ -916,7 +916,7 @@ log object update history with all updated attributes, if configured - will be e
|
||||||
id_to: value_id[1],
|
id_to: value_id[1],
|
||||||
}
|
}
|
||||||
#logger.info "HIST NEW #{self.class.to_s}.find(#{self.id}) #{data.inspect}"
|
#logger.info "HIST NEW #{self.class.to_s}.find(#{self.id}) #{data.inspect}"
|
||||||
self.history_log( 'updated', self.updated_by_id, data )
|
history_log( 'updated', updated_by_id, data )
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -931,7 +931,7 @@ delete object history, will be executed automatically
|
||||||
|
|
||||||
def history_destroy
|
def history_destroy
|
||||||
return if !self.class.history_support_config
|
return if !self.class.history_support_config
|
||||||
History.remove( self.class.to_s, self.id )
|
History.remove( self.class.to_s, id )
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -948,7 +948,7 @@ returns
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def attachments
|
def attachments
|
||||||
Store.list( object: self.class.to_s, o_id: self.id )
|
Store.list( object: self.class.to_s, o_id: id )
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -964,7 +964,7 @@ store attachments for this object
|
||||||
self.attachments_buffer = attachments
|
self.attachments_buffer = attachments
|
||||||
|
|
||||||
# update if object already exists
|
# update if object already exists
|
||||||
return if !( self.id && self.id != 0 )
|
return if !( id && id != 0 )
|
||||||
|
|
||||||
attachments_buffer_check
|
attachments_buffer_check
|
||||||
end
|
end
|
||||||
|
@ -982,7 +982,7 @@ return object and assets
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.full(id)
|
def self.full(id)
|
||||||
object = self.find(id)
|
object = find(id)
|
||||||
assets = object.assets({})
|
assets = object.assets({})
|
||||||
{
|
{
|
||||||
id: id,
|
id: id,
|
||||||
|
@ -1046,11 +1046,11 @@ get assets of object list
|
||||||
attachments_buffer.each do |attachment|
|
attachments_buffer.each do |attachment|
|
||||||
article_store.push Store.add(
|
article_store.push Store.add(
|
||||||
object: self.class.to_s,
|
object: self.class.to_s,
|
||||||
o_id: self.id,
|
o_id: id,
|
||||||
data: attachment.content,
|
data: attachment.content,
|
||||||
filename: attachment.filename,
|
filename: attachment.filename,
|
||||||
preferences: attachment.preferences,
|
preferences: attachment.preferences,
|
||||||
created_by_id: self.created_by_id,
|
created_by_id: created_by_id,
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
attachments_buffer = nil
|
attachments_buffer = nil
|
||||||
|
@ -1066,7 +1066,7 @@ delete object recent viewed list, will be executed automatically
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def recent_view_destroy
|
def recent_view_destroy
|
||||||
RecentView.log_destroy( self.class.to_s, self.id )
|
RecentView.log_destroy( self.class.to_s, id )
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -1076,7 +1076,7 @@ check string/varchar size and cut them if needed
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def check_limits
|
def check_limits
|
||||||
self.attributes.each {|attribute|
|
attributes.each {|attribute|
|
||||||
next if !self[ attribute[0] ]
|
next if !self[ attribute[0] ]
|
||||||
next if self[ attribute[0] ].class != String
|
next if self[ attribute[0] ].class != String
|
||||||
next if self[ attribute[0] ].empty?
|
next if self[ attribute[0] ].empty?
|
||||||
|
|
|
@ -25,8 +25,8 @@ returns
|
||||||
if !data[ self.class.to_app_model ]
|
if !data[ self.class.to_app_model ]
|
||||||
data[ self.class.to_app_model ] = {}
|
data[ self.class.to_app_model ] = {}
|
||||||
end
|
end
|
||||||
if !data[ self.class.to_app_model ][ self.id ]
|
if !data[ self.class.to_app_model ][ id ]
|
||||||
data[ self.class.to_app_model ][ self.id ] = self.attributes_with_associations
|
data[ self.class.to_app_model ][ id ] = attributes_with_associations
|
||||||
end
|
end
|
||||||
|
|
||||||
return data if !self['created_by_id'] && !self['updated_by_id']
|
return data if !self['created_by_id'] && !self['updated_by_id']
|
||||||
|
|
|
@ -32,7 +32,7 @@ returns
|
||||||
|
|
||||||
# for performance reasons, Model.search_index_reload will only collect if of object
|
# for performance reasons, Model.search_index_reload will only collect if of object
|
||||||
# get whole data here
|
# get whole data here
|
||||||
data = self.class.find(self.id)
|
data = self.class.find(id)
|
||||||
|
|
||||||
# remove ignored attributes
|
# remove ignored attributes
|
||||||
attributes = data.attributes
|
attributes = data.attributes
|
||||||
|
@ -47,10 +47,10 @@ returns
|
||||||
|
|
||||||
# update backend
|
# update backend
|
||||||
if self.class.column_names.include? 'active'
|
if self.class.column_names.include? 'active'
|
||||||
if self.active
|
if active
|
||||||
SearchIndexBackend.add( self.class.to_s, attributes )
|
SearchIndexBackend.add( self.class.to_s, attributes )
|
||||||
else
|
else
|
||||||
SearchIndexBackend.remove( self.class.to_s, self.id )
|
SearchIndexBackend.remove( self.class.to_s, id )
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
SearchIndexBackend.add( self.class.to_s, attributes )
|
SearchIndexBackend.add( self.class.to_s, attributes )
|
||||||
|
|
|
@ -89,7 +89,7 @@ class Authorization < ApplicationModel
|
||||||
private
|
private
|
||||||
|
|
||||||
def delete_user_cache
|
def delete_user_cache
|
||||||
self.user.cache_delete
|
user.cache_delete
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -180,10 +180,10 @@ class Channel::EmailParser
|
||||||
|
|
||||||
# protect process to work fine with spam emails, see test/fixtures/mail15.box
|
# protect process to work fine with spam emails, see test/fixtures/mail15.box
|
||||||
begin
|
begin
|
||||||
attachs = self._get_attachment( part, data[:attachments], mail )
|
attachs = _get_attachment( part, data[:attachments], mail )
|
||||||
data[:attachments].concat( attachs )
|
data[:attachments].concat( attachs )
|
||||||
rescue
|
rescue
|
||||||
attachs = self._get_attachment( part, data[:attachments], mail )
|
attachs = _get_attachment( part, data[:attachments], mail )
|
||||||
data[:attachments].concat( attachs )
|
data[:attachments].concat( attachs )
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
@ -252,7 +252,7 @@ class Channel::EmailParser
|
||||||
if !file.parts.empty?
|
if !file.parts.empty?
|
||||||
a = []
|
a = []
|
||||||
file.parts.each {|p|
|
file.parts.each {|p|
|
||||||
attachment = self._get_attachment( p, attachments, mail )
|
attachment = _get_attachment( p, attachments, mail )
|
||||||
a.concat( attachment )
|
a.concat( attachment )
|
||||||
}
|
}
|
||||||
return a
|
return a
|
||||||
|
|
|
@ -23,7 +23,7 @@ class Channel::Facebook
|
||||||
'id',
|
'id',
|
||||||
'comments',
|
'comments',
|
||||||
{
|
{
|
||||||
message: self.body
|
message: body
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# client.direct_message_create(
|
# client.direct_message_create(
|
||||||
|
|
|
@ -42,19 +42,19 @@ add a new history entry for an object
|
||||||
|
|
||||||
# lookups
|
# lookups
|
||||||
if data[:history_type]
|
if data[:history_type]
|
||||||
history_type = self.type_lookup( data[:history_type] )
|
history_type = type_lookup( data[:history_type] )
|
||||||
end
|
end
|
||||||
if data[:history_object]
|
if data[:history_object]
|
||||||
history_object = self.object_lookup( data[:history_object] )
|
history_object = object_lookup( data[:history_object] )
|
||||||
end
|
end
|
||||||
related_history_object_id = nil
|
related_history_object_id = nil
|
||||||
if data[:related_history_object]
|
if data[:related_history_object]
|
||||||
related_history_object = self.object_lookup( data[:related_history_object] )
|
related_history_object = object_lookup( data[:related_history_object] )
|
||||||
related_history_object_id = related_history_object.id
|
related_history_object_id = related_history_object.id
|
||||||
end
|
end
|
||||||
history_attribute_id = nil
|
history_attribute_id = nil
|
||||||
if data[:history_attribute]
|
if data[:history_attribute]
|
||||||
history_attribute = self.attribute_lookup( data[:history_attribute] )
|
history_attribute = attribute_lookup( data[:history_attribute] )
|
||||||
history_attribute_id = history_attribute.id
|
history_attribute_id = history_attribute.id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -149,13 +149,13 @@ returns
|
||||||
|
|
||||||
def self.list( requested_object, requested_object_id, related_history_object = nil, assets = nil )
|
def self.list( requested_object, requested_object_id, related_history_object = nil, assets = nil )
|
||||||
if !related_history_object
|
if !related_history_object
|
||||||
history_object = self.object_lookup( requested_object )
|
history_object = object_lookup( requested_object )
|
||||||
history = History.where( history_object_id: history_object.id )
|
history = History.where( history_object_id: history_object.id )
|
||||||
.where( o_id: requested_object_id )
|
.where( o_id: requested_object_id )
|
||||||
.order('created_at ASC, id ASC')
|
.order('created_at ASC, id ASC')
|
||||||
else
|
else
|
||||||
history_object_requested = self.object_lookup( requested_object )
|
history_object_requested = object_lookup( requested_object )
|
||||||
history_object_related = self.object_lookup( related_history_object )
|
history_object_related = object_lookup( related_history_object )
|
||||||
history = History.where(
|
history = History.where(
|
||||||
'((history_object_id = ? AND o_id = ?) OR (history_object_id = ? AND related_o_id = ? ))',
|
'((history_object_id = ? AND o_id = ?) OR (history_object_id = ? AND related_o_id = ? ))',
|
||||||
history_object_requested.id,
|
history_object_requested.id,
|
||||||
|
@ -174,13 +174,13 @@ returns
|
||||||
end
|
end
|
||||||
|
|
||||||
data = item.attributes
|
data = item.attributes
|
||||||
data['object'] = self.object_lookup_id( data['history_object_id'] ).name
|
data['object'] = object_lookup_id( data['history_object_id'] ).name
|
||||||
data['type'] = self.type_lookup_id( data['history_type_id'] ).name
|
data['type'] = type_lookup_id( data['history_type_id'] ).name
|
||||||
data.delete('history_object_id')
|
data.delete('history_object_id')
|
||||||
data.delete('history_type_id')
|
data.delete('history_type_id')
|
||||||
|
|
||||||
if data['history_attribute_id']
|
if data['history_attribute_id']
|
||||||
data['attribute'] = self.attribute_lookup_id( data['history_attribute_id'] ).name
|
data['attribute'] = attribute_lookup_id( data['history_attribute_id'] ).name
|
||||||
end
|
end
|
||||||
data.delete('history_attribute_id')
|
data.delete('history_attribute_id')
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ returns
|
||||||
data.delete( 'value_from' )
|
data.delete( 'value_from' )
|
||||||
end
|
end
|
||||||
if !data['related_history_object_id'].nil?
|
if !data['related_history_object_id'].nil?
|
||||||
data['related_object'] = self.object_lookup_id( data['related_history_object_id'] ).name
|
data['related_object'] = object_lookup_id( data['related_history_object_id'] ).name
|
||||||
end
|
end
|
||||||
data.delete( 'related_history_object_id' )
|
data.delete( 'related_history_object_id' )
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ class Job < ApplicationModel
|
||||||
private
|
private
|
||||||
|
|
||||||
def updated_matching
|
def updated_matching
|
||||||
count = Ticket.where( self.condition.permit! ).count
|
count = Ticket.where( condition.permit! ).count
|
||||||
self.matching = count
|
self.matching = count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ class Link < ApplicationModel
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.list(data)
|
def self.list(data)
|
||||||
linkobject = self.link_object_get( name: data[:link_object] )
|
linkobject = link_object_get( name: data[:link_object] )
|
||||||
return if !linkobject
|
return if !linkobject
|
||||||
items = []
|
items = []
|
||||||
|
|
||||||
|
@ -75,19 +75,19 @@ class Link < ApplicationModel
|
||||||
def self.add(data)
|
def self.add(data)
|
||||||
|
|
||||||
if data.key?(:link_type)
|
if data.key?(:link_type)
|
||||||
linktype = self.link_type_get( name: data[:link_type] )
|
linktype = link_type_get( name: data[:link_type] )
|
||||||
data[:link_type_id] = linktype.id
|
data[:link_type_id] = linktype.id
|
||||||
data.delete( :link_type )
|
data.delete( :link_type )
|
||||||
end
|
end
|
||||||
|
|
||||||
if data.key?(:link_object_source)
|
if data.key?(:link_object_source)
|
||||||
linkobject = self.link_object_get( name: data[:link_object_source] )
|
linkobject = link_object_get( name: data[:link_object_source] )
|
||||||
data[:link_object_source_id] = linkobject.id
|
data[:link_object_source_id] = linkobject.id
|
||||||
data.delete( :link_object_source )
|
data.delete( :link_object_source )
|
||||||
end
|
end
|
||||||
|
|
||||||
if data.key?(:link_object_target)
|
if data.key?(:link_object_target)
|
||||||
linkobject = self.link_object_get( name: data[:link_object_target] )
|
linkobject = link_object_get( name: data[:link_object_target] )
|
||||||
data[:link_object_target_id] = linkobject.id
|
data[:link_object_target_id] = linkobject.id
|
||||||
data.delete( :link_object_target )
|
data.delete( :link_object_target )
|
||||||
end
|
end
|
||||||
|
@ -109,18 +109,18 @@ class Link < ApplicationModel
|
||||||
|
|
||||||
def self.remove(data)
|
def self.remove(data)
|
||||||
if data.key?(:link_object_source)
|
if data.key?(:link_object_source)
|
||||||
linkobject = self.link_object_get( name: data[:link_object_source] )
|
linkobject = link_object_get( name: data[:link_object_source] )
|
||||||
data[:link_object_source_id] = linkobject.id
|
data[:link_object_source_id] = linkobject.id
|
||||||
end
|
end
|
||||||
|
|
||||||
if data.key?(:link_object_target)
|
if data.key?(:link_object_target)
|
||||||
linkobject = self.link_object_get( name: data[:link_object_target] )
|
linkobject = link_object_get( name: data[:link_object_target] )
|
||||||
data[:link_object_target_id] = linkobject.id
|
data[:link_object_target_id] = linkobject.id
|
||||||
end
|
end
|
||||||
|
|
||||||
# from one site
|
# from one site
|
||||||
if data.key?(:link_type)
|
if data.key?(:link_type)
|
||||||
linktype = self.link_type_get( name: data[:link_type] )
|
linktype = link_type_get( name: data[:link_type] )
|
||||||
data[:link_type_id] = linktype.id
|
data[:link_type_id] = linktype.id
|
||||||
end
|
end
|
||||||
links = Link.where(
|
links = Link.where(
|
||||||
|
@ -134,7 +134,7 @@ class Link < ApplicationModel
|
||||||
|
|
||||||
# from the other site
|
# from the other site
|
||||||
if data.key?(:link_type)
|
if data.key?(:link_type)
|
||||||
linktype = self.link_type_get( name: @map[ data[:link_type] ] )
|
linktype = link_type_get( name: @map[ data[:link_type] ] )
|
||||||
data[:link_type_id] = linktype.id
|
data[:link_type_id] = linktype.id
|
||||||
end
|
end
|
||||||
links = Link.where(
|
links = Link.where(
|
||||||
|
|
|
@ -28,7 +28,7 @@ class ObjectLookup < ApplicationModel
|
||||||
end
|
end
|
||||||
|
|
||||||
# create
|
# create
|
||||||
lookup = self.create(
|
lookup = create(
|
||||||
name: name
|
name: name
|
||||||
)
|
)
|
||||||
@@cache_object[ name ] = lookup.id
|
@@cache_object[ name ] = lookup.id
|
||||||
|
|
|
@ -223,7 +223,7 @@ returns:
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.by_object_as_hash(object, user)
|
def self.by_object_as_hash(object, user)
|
||||||
list = self.by_object(object, user)
|
list = by_object(object, user)
|
||||||
hash = {}
|
hash = {}
|
||||||
list.each {|item|
|
list.each {|item|
|
||||||
hash[ item[:name] ] = item
|
hash[ item[:name] ] = item
|
||||||
|
|
|
@ -85,7 +85,7 @@ class Observer::Ticket::Notification::BackgroundJob
|
||||||
recipient_list += user.email.to_s
|
recipient_list += user.email.to_s
|
||||||
|
|
||||||
# ignore if no changes has been done
|
# ignore if no changes has been done
|
||||||
changes = self.human_changes(user, ticket)
|
changes = human_changes(user, ticket)
|
||||||
if @p[:type] == 'update' && !article && ( !changes || changes.empty? )
|
if @p[:type] == 'update' && !article && ( !changes || changes.empty? )
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
@ -93,9 +93,9 @@ class Observer::Ticket::Notification::BackgroundJob
|
||||||
# get user based notification template
|
# get user based notification template
|
||||||
# if create, send create message / block update messages
|
# if create, send create message / block update messages
|
||||||
if @p[:type] == 'create'
|
if @p[:type] == 'create'
|
||||||
template = self.template_create(user, ticket, article, changes)
|
template = template_create(user, ticket, article, changes)
|
||||||
elsif @p[:type] == 'update'
|
elsif @p[:type] == 'update'
|
||||||
template = self.template_update(user, ticket, article, changes)
|
template = template_update(user, ticket, article, changes)
|
||||||
else
|
else
|
||||||
fail "unknown type for notification #{@p[:type]}"
|
fail "unknown type for notification #{@p[:type]}"
|
||||||
end
|
end
|
||||||
|
|
|
@ -37,7 +37,7 @@ class Observer::User::Geo < ActiveRecord::Observer
|
||||||
return if ( current_location == next_location ) && record.preferences['lat'] && record.preferences['lng']
|
return if ( current_location == next_location ) && record.preferences['lat'] && record.preferences['lng']
|
||||||
|
|
||||||
# geo update
|
# geo update
|
||||||
self.geo_update(record)
|
geo_update(record)
|
||||||
end
|
end
|
||||||
|
|
||||||
# update geo data of user
|
# update geo data of user
|
||||||
|
|
|
@ -180,7 +180,7 @@ returns:
|
||||||
|
|
||||||
def notify_clients_after_change
|
def notify_clients_after_change
|
||||||
Sessions.send_to(
|
Sessions.send_to(
|
||||||
self.user_id,
|
user_id,
|
||||||
{
|
{
|
||||||
event: 'OnlineNotification::changed',
|
event: 'OnlineNotification::changed',
|
||||||
data: {}
|
data: {}
|
||||||
|
|
|
@ -29,10 +29,10 @@ returns
|
||||||
if !data[ User.to_app_model ]
|
if !data[ User.to_app_model ]
|
||||||
data[ User.to_app_model ] = {}
|
data[ User.to_app_model ] = {}
|
||||||
end
|
end
|
||||||
if !data[ Organization.to_app_model ][ self.id ]
|
if !data[ Organization.to_app_model ][ id ]
|
||||||
data[ Organization.to_app_model ][ self.id ] = self.attributes_with_associations
|
data[ Organization.to_app_model ][ id ] = attributes_with_associations
|
||||||
if data[ Organization.to_app_model ][ self.id ]['member_ids']
|
if data[ Organization.to_app_model ][ id ]['member_ids']
|
||||||
data[ Organization.to_app_model ][ self.id ]['member_ids'].each {|user_id|
|
data[ Organization.to_app_model ][ id ]['member_ids'].each {|user_id|
|
||||||
if !data[ User.to_app_model ][ user_id ]
|
if !data[ User.to_app_model ][ user_id ]
|
||||||
user = User.lookup( id: user_id )
|
user = User.lookup( id: user_id )
|
||||||
data = user.assets( data )
|
data = user.assets( data )
|
||||||
|
|
|
@ -24,7 +24,7 @@ returns
|
||||||
# access ok if its own organization
|
# access ok if its own organization
|
||||||
return false if data[:type] != 'ro'
|
return false if data[:type] != 'ro'
|
||||||
return false if !data[:current_user].organization_id
|
return false if !data[:current_user].organization_id
|
||||||
return true if self.id == data[:current_user].organization_id
|
return true if id == data[:current_user].organization_id
|
||||||
|
|
||||||
# no access
|
# no access
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -50,7 +50,7 @@ returns
|
||||||
|
|
||||||
# add org member for search index data
|
# add org member for search index data
|
||||||
attributes['member'] = []
|
attributes['member'] = []
|
||||||
users = User.where( organization_id: self.id )
|
users = User.where( organization_id: id )
|
||||||
users.each { |user|
|
users.each { |user|
|
||||||
attributes['member'].push user.search_index_data
|
attributes['member'].push user.search_index_data
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,10 +13,10 @@ class Package < ApplicationModel
|
||||||
def self.build(data)
|
def self.build(data)
|
||||||
|
|
||||||
if data[:file]
|
if data[:file]
|
||||||
xml = self._read_file( data[:file], data[:root] || true )
|
xml = _read_file( data[:file], data[:root] || true )
|
||||||
package = self._parse(xml)
|
package = _parse(xml)
|
||||||
elsif data[:string]
|
elsif data[:string]
|
||||||
package = self._parse( data[:string] )
|
package = _parse( data[:string] )
|
||||||
end
|
end
|
||||||
|
|
||||||
build_date = REXML::Element.new('build_date')
|
build_date = REXML::Element.new('build_date')
|
||||||
|
@ -28,7 +28,7 @@ class Package < ApplicationModel
|
||||||
package.root.insert_after( '//zpm/description', build_host )
|
package.root.insert_after( '//zpm/description', build_host )
|
||||||
package.elements.each('zpm/filelist/file') do |element|
|
package.elements.each('zpm/filelist/file') do |element|
|
||||||
location = element.attributes['location']
|
location = element.attributes['location']
|
||||||
content = self._read_file( location, data[:root] )
|
content = _read_file( location, data[:root] )
|
||||||
base64 = Base64.encode64(content)
|
base64 = Base64.encode64(content)
|
||||||
element.text = base64
|
element.text = base64
|
||||||
end
|
end
|
||||||
|
@ -55,7 +55,7 @@ class Package < ApplicationModel
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
data.each {|file|
|
data.each {|file|
|
||||||
self.install( file: path + '/' + file )
|
install( file: path + '/' + file )
|
||||||
}
|
}
|
||||||
data
|
data
|
||||||
end
|
end
|
||||||
|
@ -178,10 +178,10 @@ class Package < ApplicationModel
|
||||||
# Package.install( :string => zpm_as_string )
|
# Package.install( :string => zpm_as_string )
|
||||||
def self.install(data)
|
def self.install(data)
|
||||||
if data[:file]
|
if data[:file]
|
||||||
xml = self._read_file( data[:file], true )
|
xml = _read_file( data[:file], true )
|
||||||
package = self._parse(xml)
|
package = _parse(xml)
|
||||||
elsif data[:string]
|
elsif data[:string]
|
||||||
package = self._parse( data[:string] )
|
package = _parse( data[:string] )
|
||||||
end
|
end
|
||||||
|
|
||||||
# package meta data
|
# package meta data
|
||||||
|
@ -207,7 +207,7 @@ class Package < ApplicationModel
|
||||||
end
|
end
|
||||||
|
|
||||||
# uninstall files of old package
|
# uninstall files of old package
|
||||||
self.uninstall(
|
uninstall(
|
||||||
name: package_db.name,
|
name: package_db.name,
|
||||||
version: package_db.version,
|
version: package_db.version,
|
||||||
migration_not_down: true,
|
migration_not_down: true,
|
||||||
|
@ -233,7 +233,7 @@ class Package < ApplicationModel
|
||||||
permission = element.attributes['permission'] || '644'
|
permission = element.attributes['permission'] || '644'
|
||||||
base64 = element.text
|
base64 = element.text
|
||||||
content = Base64.decode64(base64)
|
content = Base64.decode64(base64)
|
||||||
content = self._write_file(location, permission, content)
|
content = _write_file(location, permission, content)
|
||||||
end
|
end
|
||||||
|
|
||||||
# update package state
|
# update package state
|
||||||
|
@ -258,8 +258,8 @@ class Package < ApplicationModel
|
||||||
fail "No such package '#{package_name}'"
|
fail "No such package '#{package_name}'"
|
||||||
end
|
end
|
||||||
|
|
||||||
file = self._get_bin( package.name, package.version )
|
file = _get_bin( package.name, package.version )
|
||||||
self.install( string: file, reinstall: true )
|
install( string: file, reinstall: true )
|
||||||
end
|
end
|
||||||
|
|
||||||
# Package.uninstall( :name => 'package', :version => '0.1.1' )
|
# Package.uninstall( :name => 'package', :version => '0.1.1' )
|
||||||
|
@ -267,10 +267,10 @@ class Package < ApplicationModel
|
||||||
def self.uninstall( data )
|
def self.uninstall( data )
|
||||||
|
|
||||||
if data[:string]
|
if data[:string]
|
||||||
package = self._parse( data[:string] )
|
package = _parse( data[:string] )
|
||||||
else
|
else
|
||||||
file = self._get_bin( data[:name], data[:version] )
|
file = _get_bin( data[:name], data[:version] )
|
||||||
package = self._parse(file)
|
package = _parse(file)
|
||||||
end
|
end
|
||||||
|
|
||||||
# package meta data
|
# package meta data
|
||||||
|
@ -289,7 +289,7 @@ class Package < ApplicationModel
|
||||||
permission = element.attributes['permission'] || '644'
|
permission = element.attributes['permission'] || '644'
|
||||||
base64 = element.text
|
base64 = element.text
|
||||||
content = Base64.decode64(base64)
|
content = Base64.decode64(base64)
|
||||||
content = self._delete_file(location, permission, content)
|
content = _delete_file(location, permission, content)
|
||||||
end
|
end
|
||||||
|
|
||||||
# prebuild assets
|
# prebuild assets
|
||||||
|
|
|
@ -62,7 +62,7 @@ class RecentView < ApplicationModel
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.list_full( user, limit = 10 )
|
def self.list_full( user, limit = 10 )
|
||||||
recent_viewed = self.list( user, limit )
|
recent_viewed = list( user, limit )
|
||||||
|
|
||||||
# get related object
|
# get related object
|
||||||
assets = ApplicationModel.assets_of_object_list(recent_viewed)
|
assets = ApplicationModel.assets_of_object_list(recent_viewed)
|
||||||
|
@ -75,7 +75,7 @@ class RecentView < ApplicationModel
|
||||||
|
|
||||||
def notify_clients
|
def notify_clients
|
||||||
Sessions.send_to(
|
Sessions.send_to(
|
||||||
self.created_by_id,
|
created_by_id,
|
||||||
{
|
{
|
||||||
event: 'RecentView::changed',
|
event: 'RecentView::changed',
|
||||||
data: {}
|
data: {}
|
||||||
|
|
|
@ -22,7 +22,7 @@ class Scheduler < ApplicationModel
|
||||||
jobs.each {|job|
|
jobs.each {|job|
|
||||||
next if jobs_started[ job.id ]
|
next if jobs_started[ job.id ]
|
||||||
jobs_started[ job.id ] = true
|
jobs_started[ job.id ] = true
|
||||||
self.start_job( job, runner, runner_count )
|
start_job( job, runner, runner_count )
|
||||||
}
|
}
|
||||||
sleep 90
|
sleep 90
|
||||||
end
|
end
|
||||||
|
@ -35,7 +35,7 @@ class Scheduler < ApplicationModel
|
||||||
Thread.new {
|
Thread.new {
|
||||||
if job.period
|
if job.period
|
||||||
loop do
|
loop do
|
||||||
self._start_job( job, runner, runner_count )
|
_start_job( job, runner, runner_count )
|
||||||
job = Scheduler.lookup( id: job.id )
|
job = Scheduler.lookup( id: job.id )
|
||||||
|
|
||||||
# exit is job got deleted
|
# exit is job got deleted
|
||||||
|
@ -51,7 +51,7 @@ class Scheduler < ApplicationModel
|
||||||
sleep job.period
|
sleep job.period
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
self._start_job( job, runner, runner_count )
|
_start_job( job, runner, runner_count )
|
||||||
end
|
end
|
||||||
# raise "Exception from thread"
|
# raise "Exception from thread"
|
||||||
job.pid = ''
|
job.pid = ''
|
||||||
|
@ -90,7 +90,7 @@ class Scheduler < ApplicationModel
|
||||||
|
|
||||||
# restart job again
|
# restart job again
|
||||||
if try_run_max > try_count
|
if try_run_max > try_count
|
||||||
self._start_job( job, runner, runner_count, try_count, try_run_time)
|
_start_job( job, runner, runner_count, try_count, try_run_time)
|
||||||
else
|
else
|
||||||
raise "STOP thread for #{job.method} (runner #{runner} of #{runner_count} after #{try_count} tries"
|
raise "STOP thread for #{job.method} (runner #{runner} of #{runner_count} after #{try_count} tries"
|
||||||
end
|
end
|
||||||
|
|
|
@ -47,7 +47,7 @@ class Setting < ApplicationModel
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.get(name)
|
def self.get(name)
|
||||||
self.load
|
load
|
||||||
@@current[:settings_config][name]
|
@@current[:settings_config][name]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -58,15 +58,15 @@ class Setting < ApplicationModel
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_initial
|
def set_initial
|
||||||
self.state_initial = self.state
|
self.state_initial = state
|
||||||
end
|
end
|
||||||
|
|
||||||
def state_check
|
def state_check
|
||||||
|
|
||||||
return if !(self.state || self.state == false)
|
return if !(state || state == false)
|
||||||
|
|
||||||
return if !( !self.state.respond_to?('has_key?') || !self.state.key?(:value) )
|
return if !( !state.respond_to?('has_key?') || !state.key?(:value) )
|
||||||
|
|
||||||
self.state = { value: self.state }
|
self.state = { value: state }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -140,17 +140,17 @@ returns
|
||||||
end
|
end
|
||||||
|
|
||||||
def content
|
def content
|
||||||
file = Store::File.find_by( id: self.store_file_id )
|
file = Store::File.find_by( id: store_file_id )
|
||||||
if !file
|
if !file
|
||||||
fail "No such file #{ self.store_file_id }!"
|
fail "No such file #{ store_file_id }!"
|
||||||
end
|
end
|
||||||
file.content
|
file.content
|
||||||
end
|
end
|
||||||
|
|
||||||
def provider
|
def provider
|
||||||
file = Store::File.find_by( id: self.store_file_id )
|
file = Store::File.find_by( id: store_file_id )
|
||||||
if !file
|
if !file
|
||||||
fail "No such file #{ self.store_file_id }!"
|
fail "No such file #{ store_file_id }!"
|
||||||
end
|
end
|
||||||
file.provider
|
file.provider
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,7 +17,7 @@ class Store
|
||||||
if !adapter_name
|
if !adapter_name
|
||||||
fail 'Missing storage_provider setting option'
|
fail 'Missing storage_provider setting option'
|
||||||
end
|
end
|
||||||
adapter = self.load_adapter( "Store::Provider::#{ adapter_name }" )
|
adapter = load_adapter( "Store::Provider::#{ adapter_name }" )
|
||||||
adapter.add( data, sha )
|
adapter.add( data, sha )
|
||||||
file = Store::File.create(
|
file = Store::File.create(
|
||||||
provider: adapter_name,
|
provider: adapter_name,
|
||||||
|
@ -29,12 +29,12 @@ class Store
|
||||||
|
|
||||||
# read content
|
# read content
|
||||||
def content
|
def content
|
||||||
adapter = self.class.load_adapter("Store::Provider::#{ self.provider }")
|
adapter = self.class.load_adapter("Store::Provider::#{ provider }")
|
||||||
if self.sha
|
if sha
|
||||||
c = adapter.get( self.sha )
|
c = adapter.get( sha )
|
||||||
else
|
else
|
||||||
# fallback until migration is done
|
# fallback until migration is done
|
||||||
c = Store::Provider::DB.find_by( md5: self.md5 ).data
|
c = Store::Provider::DB.find_by( md5: md5 ).data
|
||||||
end
|
end
|
||||||
c
|
c
|
||||||
end
|
end
|
||||||
|
@ -86,8 +86,8 @@ class Store
|
||||||
private
|
private
|
||||||
|
|
||||||
def destroy_provider
|
def destroy_provider
|
||||||
adapter = self.class.load_adapter("Store::Provider::#{ self.provider }")
|
adapter = self.class.load_adapter("Store::Provider::#{ provider }")
|
||||||
adapter.delete( self.sha )
|
adapter.delete( sha )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,10 +11,10 @@ class Tag < ApplicationModel
|
||||||
|
|
||||||
# lookups
|
# lookups
|
||||||
if data[:object]
|
if data[:object]
|
||||||
tag_object_id = self.tag_object_lookup( data[:object] )
|
tag_object_id = tag_object_lookup( data[:object] )
|
||||||
end
|
end
|
||||||
if data[:item]
|
if data[:item]
|
||||||
tag_item_id = self.tag_item_lookup( data[:item] )
|
tag_item_id = tag_item_lookup( data[:item] )
|
||||||
end
|
end
|
||||||
|
|
||||||
# create history
|
# create history
|
||||||
|
@ -31,10 +31,10 @@ class Tag < ApplicationModel
|
||||||
|
|
||||||
# lookups
|
# lookups
|
||||||
if data[:object]
|
if data[:object]
|
||||||
tag_object_id = self.tag_object_lookup( data[:object] )
|
tag_object_id = tag_object_lookup( data[:object] )
|
||||||
end
|
end
|
||||||
if data[:item]
|
if data[:item]
|
||||||
tag_item_id = self.tag_item_lookup( data[:item] )
|
tag_item_id = tag_item_lookup( data[:item] )
|
||||||
end
|
end
|
||||||
|
|
||||||
# create history
|
# create history
|
||||||
|
@ -48,14 +48,14 @@ class Tag < ApplicationModel
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.tag_list( data )
|
def self.tag_list( data )
|
||||||
tag_object_id_requested = self.tag_object_lookup( data[:object] )
|
tag_object_id_requested = tag_object_lookup( data[:object] )
|
||||||
tag_search = Tag.where(
|
tag_search = Tag.where(
|
||||||
tag_object_id: tag_object_id_requested,
|
tag_object_id: tag_object_id_requested,
|
||||||
o_id: data[:o_id],
|
o_id: data[:o_id],
|
||||||
)
|
)
|
||||||
tags = []
|
tags = []
|
||||||
tag_search.each {|tag|
|
tag_search.each {|tag|
|
||||||
tags.push self.tag_item_lookup_id( tag.tag_item_id )
|
tags.push tag_item_lookup_id( tag.tag_item_id )
|
||||||
}
|
}
|
||||||
tags
|
tags
|
||||||
end
|
end
|
||||||
|
|
|
@ -76,7 +76,7 @@ returns
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def agent_of_group
|
def agent_of_group
|
||||||
Group.find( self.group_id ).users.where( active: true ).joins(:roles).where( 'roles.name' => Z_ROLENAME_AGENT, 'roles.active' => true ).uniq()
|
Group.find( group_id ).users.where( active: true ).joins(:roles).where( 'roles.name' => Z_ROLENAME_AGENT, 'roles.active' => true ).uniq()
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -128,10 +128,10 @@ returns
|
||||||
def merge_to(data)
|
def merge_to(data)
|
||||||
|
|
||||||
# update articles
|
# update articles
|
||||||
Ticket::Article.where( ticket_id: self.id ).each(&:touch)
|
Ticket::Article.where( ticket_id: id ).each(&:touch)
|
||||||
|
|
||||||
# quiet update of reassign of articles
|
# quiet update of reassign of articles
|
||||||
Ticket::Article.where( ticket_id: self.id ).update_all( ['ticket_id = ?', data[:ticket_id] ] )
|
Ticket::Article.where( ticket_id: id ).update_all( ['ticket_id = ?', data[:ticket_id] ] )
|
||||||
|
|
||||||
# touch new ticket (to broadcast change)
|
# touch new ticket (to broadcast change)
|
||||||
Ticket.find( data[:ticket_id] ).touch
|
Ticket.find( data[:ticket_id] ).touch
|
||||||
|
@ -140,7 +140,7 @@ returns
|
||||||
|
|
||||||
# create new merge article
|
# create new merge article
|
||||||
Ticket::Article.create(
|
Ticket::Article.create(
|
||||||
ticket_id: self.id,
|
ticket_id: id,
|
||||||
type_id: Ticket::Article::Type.lookup( name: 'note' ).id,
|
type_id: Ticket::Article::Type.lookup( name: 'note' ).id,
|
||||||
sender_id: Ticket::Article::Sender.lookup( name: Z_ROLENAME_AGENT ).id,
|
sender_id: Ticket::Article::Sender.lookup( name: Z_ROLENAME_AGENT ).id,
|
||||||
body: 'merged',
|
body: 'merged',
|
||||||
|
@ -157,7 +157,7 @@ returns
|
||||||
link_object_source: 'Ticket',
|
link_object_source: 'Ticket',
|
||||||
link_object_source_value: data[:ticket_id],
|
link_object_source_value: data[:ticket_id],
|
||||||
link_object_target: 'Ticket',
|
link_object_target: 'Ticket',
|
||||||
link_object_target_value: self.id
|
link_object_target_value: id
|
||||||
)
|
)
|
||||||
|
|
||||||
# set state to 'merged'
|
# set state to 'merged'
|
||||||
|
@ -167,7 +167,7 @@ returns
|
||||||
self.owner_id = User.find_by( login: '-' ).id
|
self.owner_id = User.find_by( login: '-' ).id
|
||||||
|
|
||||||
# save ticket
|
# save ticket
|
||||||
self.save
|
save
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -184,7 +184,7 @@ returns
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def online_notification_seen_state
|
def online_notification_seen_state
|
||||||
state = Ticket::State.lookup( id: self.state_id )
|
state = Ticket::State.lookup( id: state_id )
|
||||||
state_type = Ticket::StateType.lookup( id: state.state_type_id )
|
state_type = Ticket::StateType.lookup( id: state.state_type_id )
|
||||||
return true if state_type.name == 'closed'
|
return true if state_type.name == 'closed'
|
||||||
return true if state_type.name == 'merged'
|
return true if state_type.name == 'merged'
|
||||||
|
@ -194,26 +194,26 @@ returns
|
||||||
private
|
private
|
||||||
|
|
||||||
def check_generate
|
def check_generate
|
||||||
return if self.number
|
return if number
|
||||||
self.number = Ticket::Number.generate
|
self.number = Ticket::Number.generate
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_title
|
def check_title
|
||||||
|
|
||||||
return if !self.title
|
return if !title
|
||||||
|
|
||||||
self.title.gsub!(/\s|\t|\r/, ' ')
|
title.gsub!(/\s|\t|\r/, ' ')
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_defaults
|
def check_defaults
|
||||||
if !self.owner_id
|
if !owner_id
|
||||||
self.owner_id = 1
|
self.owner_id = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
return if !self.customer_id
|
return if !customer_id
|
||||||
|
|
||||||
customer = User.find( self.customer_id )
|
customer = User.find( customer_id )
|
||||||
return if self.organization_id == customer.organization_id
|
return if organization_id == customer.organization_id
|
||||||
|
|
||||||
self.organization_id = customer.organization_id
|
self.organization_id = customer.organization_id
|
||||||
end
|
end
|
||||||
|
@ -221,10 +221,10 @@ returns
|
||||||
def reset_pending_time
|
def reset_pending_time
|
||||||
|
|
||||||
# ignore if no state has changed
|
# ignore if no state has changed
|
||||||
return if !self.changes['state_id']
|
return if !changes['state_id']
|
||||||
|
|
||||||
# check if new state isn't pending*
|
# check if new state isn't pending*
|
||||||
current_state = Ticket::State.lookup( id: self.state_id )
|
current_state = Ticket::State.lookup( id: state_id )
|
||||||
current_state_type = Ticket::StateType.lookup( id: current_state.state_type_id )
|
current_state_type = Ticket::StateType.lookup( id: current_state.state_type_id )
|
||||||
|
|
||||||
# in case, set pending_time to nil
|
# in case, set pending_time to nil
|
||||||
|
@ -236,10 +236,10 @@ returns
|
||||||
def destroy_dependencies
|
def destroy_dependencies
|
||||||
|
|
||||||
# delete articles
|
# delete articles
|
||||||
self.articles.destroy_all
|
articles.destroy_all
|
||||||
|
|
||||||
# destroy online notifications
|
# destroy online notifications
|
||||||
OnlineNotification.remove( self.class.to_s, self.id )
|
OnlineNotification.remove( self.class.to_s, id )
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -31,7 +31,7 @@ returns
|
||||||
object: self.class.name,
|
object: self.class.name,
|
||||||
group_id: self['group_id'],
|
group_id: self['group_id'],
|
||||||
role: role,
|
role: role,
|
||||||
created_at: self.updated_at,
|
created_at: updated_at,
|
||||||
created_by_id: user_id,
|
created_by_id: user_id,
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
|
@ -31,9 +31,9 @@ class Ticket::Article < ApplicationModel
|
||||||
|
|
||||||
def check_subject
|
def check_subject
|
||||||
|
|
||||||
return if !self.subject
|
return if !subject
|
||||||
|
|
||||||
self.subject.gsub!(/\s|\t|\r/, ' ')
|
subject.gsub!(/\s|\t|\r/, ' ')
|
||||||
end
|
end
|
||||||
|
|
||||||
class Flag < ApplicationModel
|
class Flag < ApplicationModel
|
||||||
|
|
|
@ -25,14 +25,14 @@ returns
|
||||||
|
|
||||||
return if !self.class.activity_stream_support_config
|
return if !self.class.activity_stream_support_config
|
||||||
role = self.class.activity_stream_support_config[:role]
|
role = self.class.activity_stream_support_config[:role]
|
||||||
ticket = Ticket.lookup( id: self.ticket_id )
|
ticket = Ticket.lookup( id: ticket_id )
|
||||||
ActivityStream.add(
|
ActivityStream.add(
|
||||||
o_id: self['id'],
|
o_id: self['id'],
|
||||||
type: type,
|
type: type,
|
||||||
object: self.class.name,
|
object: self.class.name,
|
||||||
group_id: ticket.group_id,
|
group_id: ticket.group_id,
|
||||||
role: role,
|
role: role,
|
||||||
created_at: self.updated_at,
|
created_at: updated_at,
|
||||||
created_by_id: user_id,
|
created_by_id: user_id,
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
|
@ -26,19 +26,19 @@ returns
|
||||||
if !data[ Ticket.to_app_model ]
|
if !data[ Ticket.to_app_model ]
|
||||||
data[ Ticket.to_app_model ] = {}
|
data[ Ticket.to_app_model ] = {}
|
||||||
end
|
end
|
||||||
if !data[ Ticket.to_app_model ][ self.ticket_id ]
|
if !data[ Ticket.to_app_model ][ ticket_id ]
|
||||||
ticket = Ticket.find( self.ticket_id )
|
ticket = Ticket.find( ticket_id )
|
||||||
data = ticket.assets(data)
|
data = ticket.assets(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
if !data[ Ticket::Article.to_app_model ]
|
if !data[ Ticket::Article.to_app_model ]
|
||||||
data[ Ticket::Article.to_app_model ] = {}
|
data[ Ticket::Article.to_app_model ] = {}
|
||||||
end
|
end
|
||||||
if !data[ Ticket::Article.to_app_model ][ self.id ]
|
if !data[ Ticket::Article.to_app_model ][ id ]
|
||||||
data[ Ticket::Article.to_app_model ][ self.id ] = self.attributes
|
data[ Ticket::Article.to_app_model ][ id ] = attributes
|
||||||
|
|
||||||
# add attachment list to article
|
# add attachment list to article
|
||||||
data[ Ticket::Article.to_app_model ][ self.id ]['attachments'] = self.attachments
|
data[ Ticket::Article.to_app_model ][ id ]['attachments'] = attachments
|
||||||
end
|
end
|
||||||
|
|
||||||
%w(created_by_id updated_by_id).each {|item|
|
%w(created_by_id updated_by_id).each {|item|
|
||||||
|
|
|
@ -26,8 +26,8 @@ returns
|
||||||
if !data[ Ticket.to_app_model ]
|
if !data[ Ticket.to_app_model ]
|
||||||
data[ Ticket.to_app_model ] = {}
|
data[ Ticket.to_app_model ] = {}
|
||||||
end
|
end
|
||||||
if !data[ Ticket.to_app_model ][ self.id ]
|
if !data[ Ticket.to_app_model ][ id ]
|
||||||
data[ Ticket.to_app_model ][ self.id ] = self.attributes_with_associations
|
data[ Ticket.to_app_model ][ id ] = attributes_with_associations
|
||||||
end
|
end
|
||||||
%w(created_by_id updated_by_id owner_id customer_id).each {|item|
|
%w(created_by_id updated_by_id owner_id customer_id).each {|item|
|
||||||
next if !self[ item ]
|
next if !self[ item ]
|
||||||
|
|
|
@ -37,17 +37,17 @@ returns
|
||||||
def escalation_calculation
|
def escalation_calculation
|
||||||
|
|
||||||
# set escalation off if ticket is already closed
|
# set escalation off if ticket is already closed
|
||||||
state = Ticket::State.lookup( id: self.state_id )
|
state = Ticket::State.lookup( id: state_id )
|
||||||
if state.ignore_escalation?
|
if state.ignore_escalation?
|
||||||
|
|
||||||
# nothing to change
|
# nothing to change
|
||||||
return true if !self.escalation_time
|
return true if !escalation_time
|
||||||
|
|
||||||
self.escalation_time = nil
|
self.escalation_time = nil
|
||||||
# self.first_response_escal_date = nil
|
# self.first_response_escal_date = nil
|
||||||
# self.close_time_escal_date = nil
|
# self.close_time_escal_date = nil
|
||||||
self.callback_loop = true
|
self.callback_loop = true
|
||||||
self.save
|
save
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -58,13 +58,13 @@ returns
|
||||||
if !sla_selected
|
if !sla_selected
|
||||||
|
|
||||||
# nothing to change
|
# nothing to change
|
||||||
return true if !self.escalation_time
|
return true if !escalation_time
|
||||||
|
|
||||||
self.escalation_time = nil
|
self.escalation_time = nil
|
||||||
# self.first_response_escal_date = nil
|
# self.first_response_escal_date = nil
|
||||||
# self.close_time_escal_date = nil
|
# self.close_time_escal_date = nil
|
||||||
self.callback_loop = true
|
self.callback_loop = true
|
||||||
self.save
|
save
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -79,82 +79,82 @@ returns
|
||||||
if sla_selected.first_response_time
|
if sla_selected.first_response_time
|
||||||
|
|
||||||
# get escalation date without pending time
|
# get escalation date without pending time
|
||||||
self.first_response_escal_date = TimeCalculation.dest_time( self.created_at, sla_selected.first_response_time, sla_selected.data, sla_selected.timezone )
|
self.first_response_escal_date = TimeCalculation.dest_time( created_at, sla_selected.first_response_time, sla_selected.data, sla_selected.timezone )
|
||||||
|
|
||||||
# get pending time between created and first response escal. time
|
# get pending time between created and first response escal. time
|
||||||
time_in_pending = escalation_suspend( self.created_at, self.first_response_escal_date, 'relative', sla_selected, sla_selected.first_response_time )
|
time_in_pending = escalation_suspend( created_at, first_response_escal_date, 'relative', sla_selected, sla_selected.first_response_time )
|
||||||
|
|
||||||
# get new escalation time (original escal_date + time_in_pending)
|
# get new escalation time (original escal_date + time_in_pending)
|
||||||
self.first_response_escal_date = TimeCalculation.dest_time( self.first_response_escal_date, time_in_pending.to_i, sla_selected.data, sla_selected.timezone )
|
self.first_response_escal_date = TimeCalculation.dest_time( first_response_escal_date, time_in_pending.to_i, sla_selected.data, sla_selected.timezone )
|
||||||
|
|
||||||
# set ticket escalation
|
# set ticket escalation
|
||||||
self.escalation_time = calculation_higher_time( self.escalation_time, self.first_response_escal_date, self.first_response )
|
self.escalation_time = calculation_higher_time( escalation_time, first_response_escal_date, first_response )
|
||||||
end
|
end
|
||||||
if self.first_response# && !self.first_response_in_min
|
if first_response# && !self.first_response_in_min
|
||||||
|
|
||||||
# get response time in min between created and first response
|
# get response time in min between created and first response
|
||||||
self.first_response_in_min = escalation_suspend( self.created_at, self.first_response, 'real', sla_selected )
|
self.first_response_in_min = escalation_suspend( created_at, first_response, 'real', sla_selected )
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# set time to show if sla is raised ot in
|
# set time to show if sla is raised ot in
|
||||||
if sla_selected.first_response_time && self.first_response_in_min
|
if sla_selected.first_response_time && first_response_in_min
|
||||||
self.first_response_diff_in_min = sla_selected.first_response_time - self.first_response_in_min
|
self.first_response_diff_in_min = sla_selected.first_response_time - first_response_in_min
|
||||||
end
|
end
|
||||||
|
|
||||||
# update time
|
# update time
|
||||||
last_update = self.last_contact_agent
|
last_update = last_contact_agent
|
||||||
if !last_update
|
if !last_update
|
||||||
last_update = self.created_at
|
last_update = created_at
|
||||||
end
|
end
|
||||||
if sla_selected.update_time
|
if sla_selected.update_time
|
||||||
self.update_time_escal_date = TimeCalculation.dest_time( last_update, sla_selected.update_time, sla_selected.data, sla_selected.timezone )
|
self.update_time_escal_date = TimeCalculation.dest_time( last_update, sla_selected.update_time, sla_selected.data, sla_selected.timezone )
|
||||||
|
|
||||||
# get pending time between created and update escal. time
|
# get pending time between created and update escal. time
|
||||||
time_in_pending = escalation_suspend( last_update, self.update_time_escal_date, 'relative', sla_selected, sla_selected.update_time )
|
time_in_pending = escalation_suspend( last_update, update_time_escal_date, 'relative', sla_selected, sla_selected.update_time )
|
||||||
|
|
||||||
# get new escalation time (original escal_date + time_in_pending)
|
# get new escalation time (original escal_date + time_in_pending)
|
||||||
self.update_time_escal_date = TimeCalculation.dest_time( self.update_time_escal_date, time_in_pending.to_i, sla_selected.data, sla_selected.timezone )
|
self.update_time_escal_date = TimeCalculation.dest_time( update_time_escal_date, time_in_pending.to_i, sla_selected.data, sla_selected.timezone )
|
||||||
|
|
||||||
# set ticket escalation
|
# set ticket escalation
|
||||||
self.escalation_time = calculation_higher_time( self.escalation_time, self.update_time_escal_date, false )
|
self.escalation_time = calculation_higher_time( escalation_time, update_time_escal_date, false )
|
||||||
end
|
end
|
||||||
if self.last_contact_agent
|
if last_contact_agent
|
||||||
self.update_time_in_min = TimeCalculation.business_time_diff( self.created_at, self.last_contact_agent, sla_selected.data, sla_selected.timezone )
|
self.update_time_in_min = TimeCalculation.business_time_diff( created_at, last_contact_agent, sla_selected.data, sla_selected.timezone )
|
||||||
end
|
end
|
||||||
|
|
||||||
# set sla time
|
# set sla time
|
||||||
if sla_selected.update_time && self.update_time_in_min
|
if sla_selected.update_time && update_time_in_min
|
||||||
self.update_time_diff_in_min = sla_selected.update_time - self.update_time_in_min
|
self.update_time_diff_in_min = sla_selected.update_time - update_time_in_min
|
||||||
end
|
end
|
||||||
|
|
||||||
# close time
|
# close time
|
||||||
if sla_selected.close_time
|
if sla_selected.close_time
|
||||||
|
|
||||||
# get escalation date without pending time
|
# get escalation date without pending time
|
||||||
self.close_time_escal_date = TimeCalculation.dest_time( self.created_at, sla_selected.close_time, sla_selected.data, sla_selected.timezone )
|
self.close_time_escal_date = TimeCalculation.dest_time( created_at, sla_selected.close_time, sla_selected.data, sla_selected.timezone )
|
||||||
|
|
||||||
# get pending time between created and close escal. time
|
# get pending time between created and close escal. time
|
||||||
extended_escalation = escalation_suspend( self.created_at, self.close_time_escal_date, 'relative', sla_selected, sla_selected.close_time )
|
extended_escalation = escalation_suspend( created_at, close_time_escal_date, 'relative', sla_selected, sla_selected.close_time )
|
||||||
|
|
||||||
# get new escalation time (original escal_date + time_in_pending)
|
# get new escalation time (original escal_date + time_in_pending)
|
||||||
self.close_time_escal_date = TimeCalculation.dest_time( self.close_time_escal_date, extended_escalation.to_i, sla_selected.data, sla_selected.timezone )
|
self.close_time_escal_date = TimeCalculation.dest_time( close_time_escal_date, extended_escalation.to_i, sla_selected.data, sla_selected.timezone )
|
||||||
|
|
||||||
# set ticket escalation
|
# set ticket escalation
|
||||||
self.escalation_time = calculation_higher_time( self.escalation_time, self.close_time_escal_date, self.close_time )
|
self.escalation_time = calculation_higher_time( escalation_time, close_time_escal_date, close_time )
|
||||||
end
|
end
|
||||||
if self.close_time # && !self.close_time_in_min
|
if close_time # && !self.close_time_in_min
|
||||||
self.close_time_in_min = escalation_suspend( self.created_at, self.close_time, 'real', sla_selected )
|
self.close_time_in_min = escalation_suspend( created_at, close_time, 'real', sla_selected )
|
||||||
end
|
end
|
||||||
# set sla time
|
# set sla time
|
||||||
if sla_selected.close_time && self.close_time_in_min
|
if sla_selected.close_time && close_time_in_min
|
||||||
self.close_time_diff_in_min = sla_selected.close_time - self.close_time_in_min
|
self.close_time_diff_in_min = sla_selected.close_time - close_time_in_min
|
||||||
end
|
end
|
||||||
|
|
||||||
return if !self.changed?
|
return if !self.changed?
|
||||||
|
|
||||||
self.callback_loop = true
|
self.callback_loop = true
|
||||||
self.save
|
save
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -220,7 +220,7 @@ returns
|
||||||
total_time_without_pending = 0
|
total_time_without_pending = 0
|
||||||
total_time = 0
|
total_time = 0
|
||||||
#get history for ticket
|
#get history for ticket
|
||||||
history_list = self.history_get
|
history_list = history_get
|
||||||
|
|
||||||
#loop through hist. changes and get time
|
#loop through hist. changes and get time
|
||||||
last_state = nil
|
last_state = nil
|
||||||
|
|
|
@ -56,7 +56,7 @@ returns
|
||||||
|
|
||||||
def self.list (data)
|
def self.list (data)
|
||||||
|
|
||||||
overviews = self.all(data)
|
overviews = all(data)
|
||||||
return if !overviews
|
return if !overviews
|
||||||
|
|
||||||
# build up attributes hash
|
# build up attributes hash
|
||||||
|
|
|
@ -21,11 +21,11 @@ returns
|
||||||
if data[:current_user].is_role('Customer')
|
if data[:current_user].is_role('Customer')
|
||||||
|
|
||||||
# access ok if its own ticket
|
# access ok if its own ticket
|
||||||
return true if self.customer_id == data[:current_user].id
|
return true if customer_id == data[:current_user].id
|
||||||
|
|
||||||
# access ok if its organization ticket
|
# access ok if its organization ticket
|
||||||
if data[:current_user].organization_id && self.organization_id
|
if data[:current_user].organization_id && organization_id
|
||||||
return true if self.organization_id == data[:current_user].organization_id
|
return true if organization_id == data[:current_user].organization_id
|
||||||
end
|
end
|
||||||
|
|
||||||
# no access
|
# no access
|
||||||
|
@ -35,7 +35,7 @@ returns
|
||||||
# check agent
|
# check agent
|
||||||
|
|
||||||
# access if requestor is owner
|
# access if requestor is owner
|
||||||
return true if self.owner_id == data[:current_user].id
|
return true if owner_id == data[:current_user].id
|
||||||
|
|
||||||
# access if requestor is in group
|
# access if requestor is in group
|
||||||
data[:current_user].groups.each {|group|
|
data[:current_user].groups.each {|group|
|
||||||
|
|
|
@ -32,7 +32,7 @@ returns
|
||||||
|
|
||||||
# for performance reasons, Model.search_index_reload will only collect if of object
|
# for performance reasons, Model.search_index_reload will only collect if of object
|
||||||
# get whole data here
|
# get whole data here
|
||||||
ticket = self.class.find(self.id)
|
ticket = self.class.find(id)
|
||||||
|
|
||||||
# remove ignored attributes
|
# remove ignored attributes
|
||||||
attributes = ticket.attributes
|
attributes = ticket.attributes
|
||||||
|
@ -42,7 +42,7 @@ returns
|
||||||
}
|
}
|
||||||
|
|
||||||
# add tags
|
# add tags
|
||||||
tags = Tag.tag_list( object: 'Ticket', o_id: self.id )
|
tags = Tag.tag_list( object: 'Ticket', o_id: id )
|
||||||
if tags && !tags.empty?
|
if tags && !tags.empty?
|
||||||
attributes[:tag] = tags
|
attributes[:tag] = tags
|
||||||
end
|
end
|
||||||
|
@ -57,7 +57,7 @@ returns
|
||||||
attachment_max_size_in_mb = Setting.get('es_attachment_max_size_in_mb') || 40
|
attachment_max_size_in_mb = Setting.get('es_attachment_max_size_in_mb') || 40
|
||||||
|
|
||||||
# collect article data
|
# collect article data
|
||||||
articles = Ticket::Article.where( ticket_id: self.id )
|
articles = Ticket::Article.where( ticket_id: id )
|
||||||
attributes['articles'] = []
|
attributes['articles'] = []
|
||||||
articles.each {|article|
|
articles.each {|article|
|
||||||
article_attributes = article.attributes
|
article_attributes = article.attributes
|
||||||
|
|
|
@ -47,7 +47,7 @@ returns:
|
||||||
|
|
||||||
def ignore_escalation?
|
def ignore_escalation?
|
||||||
ignore_escalation = %w(removed closed merged)
|
ignore_escalation = %w(removed closed merged)
|
||||||
return true if ignore_escalation.include?( self.name )
|
return true if ignore_escalation.include?( name )
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,7 +18,7 @@ returns
|
||||||
def subject_build (subject)
|
def subject_build (subject)
|
||||||
|
|
||||||
# clena subject
|
# clena subject
|
||||||
subject = self.subject_clean(subject)
|
subject = subject_clean(subject)
|
||||||
|
|
||||||
ticket_hook = Setting.get('ticket_hook')
|
ticket_hook = Setting.get('ticket_hook')
|
||||||
ticket_hook_divider = Setting.get('ticket_hook_divider')
|
ticket_hook_divider = Setting.get('ticket_hook_divider')
|
||||||
|
@ -30,11 +30,11 @@ returns
|
||||||
|
|
||||||
# right position
|
# right position
|
||||||
if Setting.get('ticket_hook_position') == 'right'
|
if Setting.get('ticket_hook_position') == 'right'
|
||||||
return subject + " [#{ticket_hook}#{ticket_hook_divider}#{self.number}] "
|
return subject + " [#{ticket_hook}#{ticket_hook_divider}#{number}] "
|
||||||
end
|
end
|
||||||
|
|
||||||
# left position
|
# left position
|
||||||
"[#{ticket_hook}#{ticket_hook_divider}#{self.number}] " + subject
|
"[#{ticket_hook}#{ticket_hook_divider}#{number}] " + subject
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -56,14 +56,14 @@ returns
|
||||||
ticket_subject_size = Setting.get('ticket_subject_size')
|
ticket_subject_size = Setting.get('ticket_subject_size')
|
||||||
|
|
||||||
# remove all possible ticket hook formats with []
|
# remove all possible ticket hook formats with []
|
||||||
subject = subject.gsub(/\[#{ticket_hook}: #{self.number}\](\s+?|)/, '')
|
subject = subject.gsub(/\[#{ticket_hook}: #{number}\](\s+?|)/, '')
|
||||||
subject = subject.gsub(/\[#{ticket_hook}:#{self.number}\](\s+?|)/, '')
|
subject = subject.gsub(/\[#{ticket_hook}:#{number}\](\s+?|)/, '')
|
||||||
subject = subject.gsub(/\[#{ticket_hook}#{ticket_hook_divider}#{self.number}\](\s+?|)/, '')
|
subject = subject.gsub(/\[#{ticket_hook}#{ticket_hook_divider}#{number}\](\s+?|)/, '')
|
||||||
|
|
||||||
# remove all possible ticket hook formats without []
|
# remove all possible ticket hook formats without []
|
||||||
subject = subject.gsub(/#{ticket_hook}: #{self.number}(\s+?|)/, '')
|
subject = subject.gsub(/#{ticket_hook}: #{number}(\s+?|)/, '')
|
||||||
subject = subject.gsub(/#{ticket_hook}:#{self.number}(\s+?|)/, '')
|
subject = subject.gsub(/#{ticket_hook}:#{number}(\s+?|)/, '')
|
||||||
subject = subject.gsub(/#{ticket_hook}#{ticket_hook_divider}#{self.number}(\s+?|)/, '')
|
subject = subject.gsub(/#{ticket_hook}#{ticket_hook_divider}#{number}(\s+?|)/, '')
|
||||||
|
|
||||||
# remove leading "..:\s" and "..[\d+]:\s" e. g. "Re: " or "Re[5]: "
|
# remove leading "..:\s" and "..[\d+]:\s" e. g. "Re: " or "Re[5]: "
|
||||||
subject = subject.gsub(/^(..(\[\d+\])?:\s)+/, '')
|
subject = subject.gsub(/^(..(\[\d+\])?:\s)+/, '')
|
||||||
|
|
|
@ -32,7 +32,7 @@ class Token < ActiveRecord::Base
|
||||||
loop do
|
loop do
|
||||||
self.name = SecureRandom.hex(20)
|
self.name = SecureRandom.hex(20)
|
||||||
|
|
||||||
break if !Token.exists?( name: self.name )
|
break if !Token.exists?( name: name )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -170,11 +170,11 @@ translate strings in ruby context, e. g. for notifications
|
||||||
def set_initial
|
def set_initial
|
||||||
|
|
||||||
return if target_initial
|
return if target_initial
|
||||||
self.target_initial = self.target
|
self.target_initial = target
|
||||||
end
|
end
|
||||||
|
|
||||||
def cache_clear
|
def cache_clear
|
||||||
Cache.delete( 'Translation::' + self.locale.downcase )
|
Cache.delete( 'Translation::' + locale.downcase )
|
||||||
end
|
end
|
||||||
def self.cache_set(locale, data)
|
def self.cache_set(locale, data)
|
||||||
Cache.write( 'Translation::' + locale.downcase, data )
|
Cache.write( 'Translation::' + locale.downcase, data )
|
||||||
|
|
|
@ -28,7 +28,7 @@ class TypeLookup < ApplicationModel
|
||||||
end
|
end
|
||||||
|
|
||||||
# create
|
# create
|
||||||
lookup = self.create(
|
lookup = create(
|
||||||
name: name
|
name: name
|
||||||
)
|
)
|
||||||
@@cache_object[ name ] = lookup.id
|
@@cache_object[ name ] = lookup.id
|
||||||
|
|
|
@ -87,17 +87,17 @@ returns
|
||||||
|
|
||||||
def fullname
|
def fullname
|
||||||
fullname = ''
|
fullname = ''
|
||||||
if self.firstname && !self.firstname.empty?
|
if firstname && !firstname.empty?
|
||||||
fullname = fullname + self.firstname
|
fullname = fullname + firstname
|
||||||
end
|
end
|
||||||
if self.lastname && !self.lastname.empty?
|
if lastname && !lastname.empty?
|
||||||
if fullname != ''
|
if fullname != ''
|
||||||
fullname = fullname + ' '
|
fullname = fullname + ' '
|
||||||
end
|
end
|
||||||
fullname = fullname + self.lastname
|
fullname = fullname + lastname
|
||||||
end
|
end
|
||||||
if fullname == '' && self.email
|
if fullname == '' && email
|
||||||
fullname = self.email
|
fullname = email
|
||||||
end
|
end
|
||||||
fullname
|
fullname
|
||||||
end
|
end
|
||||||
|
@ -116,7 +116,7 @@ returns
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def is_role( role_name )
|
def is_role( role_name )
|
||||||
self.roles.each { |role|
|
roles.each { |role|
|
||||||
return role if role.name == role_name
|
return role if role.name == role_name
|
||||||
}
|
}
|
||||||
false
|
false
|
||||||
|
@ -250,7 +250,7 @@ returns
|
||||||
url = hash['info']['urls']['Website'] || hash['info']['urls']['Twitter'] || ''
|
url = hash['info']['urls']['Website'] || hash['info']['urls']['Twitter'] || ''
|
||||||
end
|
end
|
||||||
roles = Role.where( name: 'Customer' )
|
roles = Role.where( name: 'Customer' )
|
||||||
self.create(
|
create(
|
||||||
login: hash['info']['nickname'] || hash['uid'],
|
login: hash['info']['nickname'] || hash['uid'],
|
||||||
firstname: hash['info']['name'],
|
firstname: hash['info']['name'],
|
||||||
email: hash['info']['email'],
|
email: hash['info']['email'],
|
||||||
|
@ -401,21 +401,21 @@ returns
|
||||||
self.login_failed = 0
|
self.login_failed = 0
|
||||||
|
|
||||||
# set updated by user
|
# set updated by user
|
||||||
self.updated_by_id = self.id
|
self.updated_by_id = id
|
||||||
|
|
||||||
self.save
|
save
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def check_name
|
def check_name
|
||||||
|
|
||||||
if ( self.firstname && !self.firstname.empty? ) && ( !self.lastname || self.lastname.empty? )
|
if ( firstname && !firstname.empty? ) && ( !lastname || lastname.empty? )
|
||||||
|
|
||||||
# Lastname, Firstname
|
# Lastname, Firstname
|
||||||
scan = self.firstname.scan(/, /)
|
scan = firstname.scan(/, /)
|
||||||
if scan[0]
|
if scan[0]
|
||||||
name = self.firstname.split(', ', 2)
|
name = firstname.split(', ', 2)
|
||||||
if !name[0].nil?
|
if !name[0].nil?
|
||||||
self.lastname = name[0]
|
self.lastname = name[0]
|
||||||
end
|
end
|
||||||
|
@ -426,7 +426,7 @@ returns
|
||||||
end
|
end
|
||||||
|
|
||||||
# Firstname Lastname
|
# Firstname Lastname
|
||||||
name = self.firstname.split(' ', 2)
|
name = firstname.split(' ', 2)
|
||||||
if !name[0].nil?
|
if !name[0].nil?
|
||||||
self.firstname = name[0]
|
self.firstname = name[0]
|
||||||
end
|
end
|
||||||
|
@ -436,8 +436,8 @@ returns
|
||||||
return
|
return
|
||||||
|
|
||||||
# -no name- firstname.lastname@example.com
|
# -no name- firstname.lastname@example.com
|
||||||
elsif ( !self.firstname || self.firstname.empty? ) && ( !self.lastname || self.lastname.empty? ) && ( self.email && !self.email.empty? )
|
elsif ( !firstname || firstname.empty? ) && ( !lastname || lastname.empty? ) && ( email && !email.empty? )
|
||||||
scan = self.email.scan(/^(.+?)\.(.+?)\@.+?$/)
|
scan = email.scan(/^(.+?)\.(.+?)\@.+?$/)
|
||||||
if scan[0]
|
if scan[0]
|
||||||
if !scan[0][0].nil?
|
if !scan[0][0].nil?
|
||||||
self.firstname = scan[0][0].capitalize
|
self.firstname = scan[0][0].capitalize
|
||||||
|
@ -451,34 +451,34 @@ returns
|
||||||
|
|
||||||
def check_email
|
def check_email
|
||||||
|
|
||||||
return if !self.email
|
return if !email
|
||||||
|
|
||||||
self.email = self.email.downcase
|
self.email = email.downcase
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_login
|
def check_login
|
||||||
|
|
||||||
# use email as login if not given
|
# use email as login if not given
|
||||||
if !self.login && self.email
|
if !login && email
|
||||||
self.login = self.email
|
self.login = email
|
||||||
end
|
end
|
||||||
|
|
||||||
# if email has changed, login is old email, change also login
|
# if email has changed, login is old email, change also login
|
||||||
if self.changes && self.changes['email']
|
if changes && changes['email']
|
||||||
if self.changes['email'][0] == self.login
|
if changes['email'][0] == login
|
||||||
self.login = self.email
|
self.login = email
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# check if login already exists
|
# check if login already exists
|
||||||
return if !self.login
|
return if !login
|
||||||
|
|
||||||
self.login = self.login.downcase
|
self.login = login.downcase
|
||||||
check = true
|
check = true
|
||||||
while check
|
while check
|
||||||
exists = User.find_by( login: self.login )
|
exists = User.find_by( login: login )
|
||||||
if exists && exists.id != self.id
|
if exists && exists.id != id
|
||||||
self.login = self.login + rand(999).to_s
|
self.login = login + rand(999).to_s
|
||||||
else
|
else
|
||||||
check = false
|
check = false
|
||||||
end
|
end
|
||||||
|
@ -487,49 +487,49 @@ returns
|
||||||
|
|
||||||
def avatar_check
|
def avatar_check
|
||||||
|
|
||||||
return if !self.email
|
return if !email
|
||||||
return if self.email.empty?
|
return if email.empty?
|
||||||
|
|
||||||
# save/update avatar
|
# save/update avatar
|
||||||
avatar = Avatar.auto_detection(
|
avatar = Avatar.auto_detection(
|
||||||
object: 'User',
|
object: 'User',
|
||||||
o_id: self.id,
|
o_id: id,
|
||||||
url: self.email,
|
url: email,
|
||||||
source: 'app',
|
source: 'app',
|
||||||
updated_by_id: self.updated_by_id,
|
updated_by_id: updated_by_id,
|
||||||
created_by_id: self.updated_by_id,
|
created_by_id: updated_by_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
# update user link
|
# update user link
|
||||||
return if !avatar
|
return if !avatar
|
||||||
|
|
||||||
self.update_column( :image, avatar.store_hash )
|
update_column( :image, avatar.store_hash )
|
||||||
self.cache_delete
|
cache_delete
|
||||||
end
|
end
|
||||||
|
|
||||||
def avatar_destroy
|
def avatar_destroy
|
||||||
Avatar.remove( 'User', self.id )
|
Avatar.remove( 'User', id )
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_password
|
def check_password
|
||||||
|
|
||||||
# set old password again if not given
|
# set old password again if not given
|
||||||
if self.password == '' || !self.password
|
if password == '' || !password
|
||||||
|
|
||||||
# get current record
|
# get current record
|
||||||
if self.id
|
if id
|
||||||
#current = User.find(self.id)
|
#current = User.find(self.id)
|
||||||
#self.password = current.password
|
#self.password = current.password
|
||||||
self.password = self.password_was
|
self.password = password_was
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# crypt password if not already crypted
|
# crypt password if not already crypted
|
||||||
return if !self.password
|
return if !password
|
||||||
return if self.password =~ /^\{sha2\}/
|
return if password =~ /^\{sha2\}/
|
||||||
|
|
||||||
crypted = Digest::SHA2.hexdigest( self.password )
|
crypted = Digest::SHA2.hexdigest( password )
|
||||||
self.password = "{sha2}#{crypted}"
|
self.password = "{sha2}#{crypted}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -26,8 +26,8 @@ returns
|
||||||
if !data[ User.to_app_model ]
|
if !data[ User.to_app_model ]
|
||||||
data[ User.to_app_model ] = {}
|
data[ User.to_app_model ] = {}
|
||||||
end
|
end
|
||||||
if !data[ User.to_app_model ][ self.id ]
|
if !data[ User.to_app_model ][ id ]
|
||||||
attributes = self.attributes_with_associations
|
attributes = attributes_with_associations
|
||||||
|
|
||||||
# do not transfer crypted pw
|
# do not transfer crypted pw
|
||||||
attributes['password'] = ''
|
attributes['password'] = ''
|
||||||
|
@ -42,7 +42,7 @@ returns
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
data[ User.to_app_model ][ self.id ] = attributes
|
data[ User.to_app_model ][ id ] = attributes
|
||||||
|
|
||||||
# get roles
|
# get roles
|
||||||
if attributes['role_ids']
|
if attributes['role_ids']
|
||||||
|
|
|
@ -22,7 +22,7 @@ returns
|
||||||
if data[:current_user].is_role(Z_ROLENAME_CUSTOMER)
|
if data[:current_user].is_role(Z_ROLENAME_CUSTOMER)
|
||||||
|
|
||||||
# access ok if its own user
|
# access ok if its own user
|
||||||
return true if self.id == data[:current_user].id
|
return true if id == data[:current_user].id
|
||||||
|
|
||||||
# no access
|
# no access
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -22,7 +22,7 @@ returns
|
||||||
return if !adapter
|
return if !adapter
|
||||||
|
|
||||||
# load backend
|
# load backend
|
||||||
self.load_adapter(adapter)
|
load_adapter(adapter)
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
|
|
@ -40,7 +40,7 @@ returns
|
||||||
next if !config_item[:adapter]
|
next if !config_item[:adapter]
|
||||||
|
|
||||||
# load backend
|
# load backend
|
||||||
backend = self.load_adapter( config_item[:adapter] )
|
backend = load_adapter( config_item[:adapter] )
|
||||||
next if !backend
|
next if !backend
|
||||||
|
|
||||||
user_auth = backend.check( username, password, config_item, user )
|
user_auth = backend.check( username, password, config_item, user )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
class Class
|
class Class
|
||||||
def to_app_model_url
|
def to_app_model_url
|
||||||
camel_cased_word = self.to_s
|
camel_cased_word = to_s
|
||||||
camel_cased_word.gsub(/::/, '_')
|
camel_cased_word.gsub(/::/, '_')
|
||||||
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
||||||
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
||||||
|
@ -9,7 +9,7 @@ class Class
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_app_model
|
def to_app_model
|
||||||
camel_cased_word = self.to_s
|
camel_cased_word = to_s
|
||||||
camel_cased_word.gsub(/::/, '').to_sym
|
camel_cased_word.gsub(/::/, '').to_sym
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
class String
|
class String
|
||||||
def message_quote
|
def message_quote
|
||||||
quote = self.split("\n")
|
quote = split("\n")
|
||||||
body_quote = ''
|
body_quote = ''
|
||||||
quote.each do |line|
|
quote.each do |line|
|
||||||
body_quote = body_quote + '> ' + line + "\n"
|
body_quote = body_quote + '> ' + line + "\n"
|
||||||
|
@ -40,7 +40,7 @@ class String
|
||||||
# More details: http://pjambet.github.io/blog/emojis-and-mysql/
|
# More details: http://pjambet.github.io/blog/emojis-and-mysql/
|
||||||
def utf8_to_3bytesutf8
|
def utf8_to_3bytesutf8
|
||||||
return if ActiveRecord::Base.connection_config[:adapter] != 'mysql2'
|
return if ActiveRecord::Base.connection_config[:adapter] != 'mysql2'
|
||||||
self.each_char.select {|c|
|
each_char.select {|c|
|
||||||
if c.bytes.count > 3
|
if c.bytes.count > 3
|
||||||
Rails.logger.warn "strip out 4 bytes utf8 chars '#{c}' of '#{ self }'"
|
Rails.logger.warn "strip out 4 bytes utf8 chars '#{c}' of '#{ self }'"
|
||||||
next
|
next
|
||||||
|
|
|
@ -30,7 +30,7 @@ returns
|
||||||
def self.location(address)
|
def self.location(address)
|
||||||
|
|
||||||
# load backend
|
# load backend
|
||||||
backend = self.load_adapter_by_setting( 'geo_ip_backend' )
|
backend = load_adapter_by_setting( 'geo_ip_backend' )
|
||||||
return if !backend
|
return if !backend
|
||||||
|
|
||||||
# db lookup
|
# db lookup
|
||||||
|
|
|
@ -18,7 +18,7 @@ returns
|
||||||
def self.geocode(address)
|
def self.geocode(address)
|
||||||
|
|
||||||
# load backend
|
# load backend
|
||||||
backend = self.load_adapter_by_setting( 'geo_location_backend' )
|
backend = load_adapter_by_setting( 'geo_location_backend' )
|
||||||
return if !backend
|
return if !backend
|
||||||
|
|
||||||
# db lookup
|
# db lookup
|
||||||
|
@ -40,7 +40,7 @@ returns
|
||||||
def self.reverse_geocode(lat, lng)
|
def self.reverse_geocode(lat, lng)
|
||||||
|
|
||||||
# load backend
|
# load backend
|
||||||
backend = self.load_adapter_by_setting( 'geo_location_backend' )
|
backend = load_adapter_by_setting( 'geo_location_backend' )
|
||||||
return if !backend
|
return if !backend
|
||||||
|
|
||||||
# db lookup
|
# db lookup
|
||||||
|
|
|
@ -207,7 +207,7 @@ module Import::OTRS
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.connection_test
|
def self.connection_test
|
||||||
self.request_json({})
|
request_json({})
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -235,7 +235,7 @@ module Import::OTRS
|
||||||
end
|
end
|
||||||
|
|
||||||
# retrive statistic
|
# retrive statistic
|
||||||
statistic = self.request_json( { Subaction: 'List' }, 1)
|
statistic = request_json( { Subaction: 'List' }, 1)
|
||||||
if statistic
|
if statistic
|
||||||
Cache.write('import_otrs_stats', statistic)
|
Cache.write('import_otrs_stats', statistic)
|
||||||
end
|
end
|
||||||
|
@ -264,7 +264,7 @@ module Import::OTRS
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.current_state
|
def self.current_state
|
||||||
data = self.statistic
|
data = statistic
|
||||||
base = Group.count + Ticket::State.count + Ticket::Priority.count
|
base = Group.count + Ticket::State.count + Ticket::Priority.count
|
||||||
base_total = data['Queue'] + data['State'] + data['Priority']
|
base_total = data['Queue'] + data['State'] + data['Priority']
|
||||||
user = User.count
|
user = User.count
|
||||||
|
@ -415,7 +415,7 @@ module Import::OTRS
|
||||||
def self.diff_worker
|
def self.diff_worker
|
||||||
return if !Setting.get('import_mode')
|
return if !Setting.get('import_mode')
|
||||||
return if Setting.get('import_otrs_endpoint') == 'http://otrs_host/otrs'
|
return if Setting.get('import_otrs_endpoint') == 'http://otrs_host/otrs'
|
||||||
self.diff
|
diff
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.diff
|
def self.diff
|
||||||
|
@ -453,7 +453,7 @@ module Import::OTRS
|
||||||
organization(organizations)
|
organization(organizations)
|
||||||
|
|
||||||
# get changed tickets
|
# get changed tickets
|
||||||
self.ticket_diff
|
ticket_diff
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ returns
|
||||||
|
|
||||||
# send update to browser
|
# send update to browser
|
||||||
if session && session['id']
|
if session && session['id']
|
||||||
self.send(
|
send(
|
||||||
client_id,
|
client_id,
|
||||||
{
|
{
|
||||||
event: 'ws:login',
|
event: 'ws:login',
|
||||||
|
@ -110,7 +110,7 @@ returns
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.session_exists?(client_id)
|
def self.session_exists?(client_id)
|
||||||
client_ids = self.sessions
|
client_ids = sessions
|
||||||
client_ids.include? client_id.to_s
|
client_ids.include? client_id.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -146,10 +146,10 @@ returns
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.list
|
def self.list
|
||||||
client_ids = self.sessions
|
client_ids = sessions
|
||||||
session_list = {}
|
session_list = {}
|
||||||
client_ids.each { |client_id|
|
client_ids.each { |client_id|
|
||||||
data = self.get(client_id)
|
data = get(client_id)
|
||||||
next if !data
|
next if !data
|
||||||
session_list[client_id] = data
|
session_list[client_id] = data
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ returns
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.touch( client_id )
|
def self.touch( client_id )
|
||||||
data = self.get(client_id)
|
data = get(client_id)
|
||||||
return false if !data
|
return false if !data
|
||||||
path = "#{@path}/#{client_id}"
|
path = "#{@path}/#{client_id}"
|
||||||
data[:meta][:last_ping] = Time.new.to_i.to_s
|
data[:meta][:last_ping] = Time.new.to_i.to_s
|
||||||
|
@ -246,12 +246,12 @@ returns
|
||||||
session_file = "#{session_dir}/session"
|
session_file = "#{session_dir}/session"
|
||||||
data = nil
|
data = nil
|
||||||
if !File.exist? session_dir
|
if !File.exist? session_dir
|
||||||
self.destory(client_id)
|
destory(client_id)
|
||||||
Rails.logger.error "missing session directory for '#{client_id}', remove session."
|
Rails.logger.error "missing session directory for '#{client_id}', remove session."
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if !File.exist? session_file
|
if !File.exist? session_file
|
||||||
self.destory(client_id)
|
destory(client_id)
|
||||||
Rails.logger.errror "missing session file for '#{client_id}', remove session."
|
Rails.logger.errror "missing session file for '#{client_id}', remove session."
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -262,13 +262,13 @@ returns
|
||||||
file.flock( File::LOCK_UN )
|
file.flock( File::LOCK_UN )
|
||||||
data_json = JSON.parse( all )
|
data_json = JSON.parse( all )
|
||||||
if data_json
|
if data_json
|
||||||
data = self.symbolize_keys(data_json)
|
data = symbolize_keys(data_json)
|
||||||
data[:user] = data_json['user'] # for compat. reasons
|
data[:user] = data_json['user'] # for compat. reasons
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
Rails.logger.error e.inspect
|
Rails.logger.error e.inspect
|
||||||
self.destory(client_id)
|
destory(client_id)
|
||||||
Rails.logger.error "ERROR: reading session file '#{session_file}', remove session."
|
Rails.logger.error "ERROR: reading session file '#{session_file}', remove session."
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -327,7 +327,7 @@ returns
|
||||||
def self.send_to( user_id, data )
|
def self.send_to( user_id, data )
|
||||||
|
|
||||||
# list all current clients
|
# list all current clients
|
||||||
client_list = self.sessions
|
client_list = sessions
|
||||||
client_list.each {|client_id|
|
client_list.each {|client_id|
|
||||||
session = Sessions.get(client_id)
|
session = Sessions.get(client_id)
|
||||||
next if !session
|
next if !session
|
||||||
|
@ -354,7 +354,7 @@ returns
|
||||||
def self.broadcast( data )
|
def self.broadcast( data )
|
||||||
|
|
||||||
# list all current clients
|
# list all current clients
|
||||||
client_list = self.sessions
|
client_list = sessions
|
||||||
client_list.each {|client_id|
|
client_list.each {|client_id|
|
||||||
Sessions.send( client_id, data )
|
Sessions.send( client_id, data )
|
||||||
}
|
}
|
||||||
|
@ -508,7 +508,7 @@ returns
|
||||||
|
|
||||||
Thread.abort_on_exception = true
|
Thread.abort_on_exception = true
|
||||||
loop do
|
loop do
|
||||||
client_ids = self.sessions
|
client_ids = sessions
|
||||||
client_ids.each { |client_id|
|
client_ids.each { |client_id|
|
||||||
|
|
||||||
# connection already open, ignore
|
# connection already open, ignore
|
||||||
|
|
|
@ -35,13 +35,13 @@ class Sessions::Backend::ActivityStream
|
||||||
def push
|
def push
|
||||||
|
|
||||||
# check timeout
|
# check timeout
|
||||||
timeout = Sessions::CacheIn.get( self.client_key )
|
timeout = Sessions::CacheIn.get( client_key )
|
||||||
return if timeout
|
return if timeout
|
||||||
|
|
||||||
# set new timeout
|
# set new timeout
|
||||||
Sessions::CacheIn.set( self.client_key, true, { expires_in: @ttl.seconds } )
|
Sessions::CacheIn.set( client_key, true, { expires_in: @ttl.seconds } )
|
||||||
|
|
||||||
data = self.load
|
data = load
|
||||||
|
|
||||||
return if !data || data.empty?
|
return if !data || data.empty?
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ class Sessions::Backend::Collections
|
||||||
@client = client
|
@client = client
|
||||||
@client_id = client_id
|
@client_id = client_id
|
||||||
@ttl = ttl
|
@ttl = ttl
|
||||||
@backends = self.backend
|
@backends = backend
|
||||||
end
|
end
|
||||||
|
|
||||||
def push
|
def push
|
||||||
|
|
|
@ -42,11 +42,11 @@ class Sessions::Backend::Collections::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
# check timeout
|
# check timeout
|
||||||
timeout = Sessions::CacheIn.get( self.client_key )
|
timeout = Sessions::CacheIn.get( client_key )
|
||||||
return if timeout
|
return if timeout
|
||||||
|
|
||||||
# set new timeout
|
# set new timeout
|
||||||
Sessions::CacheIn.set( self.client_key, true, { expires_in: @ttl.seconds } )
|
Sessions::CacheIn.set( client_key, true, { expires_in: @ttl.seconds } )
|
||||||
|
|
||||||
# check if update has been done
|
# check if update has been done
|
||||||
last_change = self.class.model.constantize.latest_change
|
last_change = self.class.model.constantize.latest_change
|
||||||
|
@ -54,7 +54,7 @@ class Sessions::Backend::Collections::Base
|
||||||
@last_change = last_change
|
@last_change = last_change
|
||||||
|
|
||||||
# load current data
|
# load current data
|
||||||
items = self.load
|
items = load
|
||||||
|
|
||||||
return if !items || items.empty?
|
return if !items || items.empty?
|
||||||
|
|
||||||
|
|
|
@ -16,14 +16,14 @@ class Sessions::Backend::Rss
|
||||||
def load
|
def load
|
||||||
|
|
||||||
# check timeout
|
# check timeout
|
||||||
cache = Sessions::CacheIn.get( self.collection_key )
|
cache = Sessions::CacheIn.get( collection_key )
|
||||||
return cache if cache
|
return cache if cache
|
||||||
|
|
||||||
url = 'http://www.heise.de/newsticker/heise-atom.xml'
|
url = 'http://www.heise.de/newsticker/heise-atom.xml'
|
||||||
rss_items = Rss.fetch( url, 8 )
|
rss_items = Rss.fetch( url, 8 )
|
||||||
|
|
||||||
# set new timeout
|
# set new timeout
|
||||||
Sessions::CacheIn.set( self.collection_key, rss_items, { expires_in: 1.hours } )
|
Sessions::CacheIn.set( collection_key, rss_items, { expires_in: 1.hours } )
|
||||||
|
|
||||||
rss_items
|
rss_items
|
||||||
end
|
end
|
||||||
|
@ -35,13 +35,13 @@ class Sessions::Backend::Rss
|
||||||
def push
|
def push
|
||||||
|
|
||||||
# check timeout
|
# check timeout
|
||||||
timeout = Sessions::CacheIn.get( self.client_key )
|
timeout = Sessions::CacheIn.get( client_key )
|
||||||
return if timeout
|
return if timeout
|
||||||
|
|
||||||
# set new timeout
|
# set new timeout
|
||||||
Sessions::CacheIn.set( self.client_key, true, { expires_in: @ttl.seconds } )
|
Sessions::CacheIn.set( client_key, true, { expires_in: @ttl.seconds } )
|
||||||
|
|
||||||
data = self.load
|
data = load
|
||||||
|
|
||||||
return if !data || data.empty?
|
return if !data || data.empty?
|
||||||
|
|
||||||
|
|
|
@ -33,13 +33,13 @@ class Sessions::Backend::TicketCreate
|
||||||
def push
|
def push
|
||||||
|
|
||||||
# check timeout
|
# check timeout
|
||||||
timeout = Sessions::CacheIn.get( self.client_key )
|
timeout = Sessions::CacheIn.get( client_key )
|
||||||
return if timeout
|
return if timeout
|
||||||
|
|
||||||
# set new timeout
|
# set new timeout
|
||||||
Sessions::CacheIn.set( self.client_key, true, { expires_in: @ttl.seconds } )
|
Sessions::CacheIn.set( client_key, true, { expires_in: @ttl.seconds } )
|
||||||
|
|
||||||
ticket_create_attributes = self.load
|
ticket_create_attributes = load
|
||||||
|
|
||||||
return if !ticket_create_attributes
|
return if !ticket_create_attributes
|
||||||
|
|
||||||
|
|
|
@ -34,10 +34,10 @@ class Sessions::Backend::TicketOverviewIndex
|
||||||
def push
|
def push
|
||||||
|
|
||||||
# check check interval
|
# check check interval
|
||||||
return if Sessions::CacheIn.get( self.client_key )
|
return if Sessions::CacheIn.get( client_key )
|
||||||
|
|
||||||
# reset check interval
|
# reset check interval
|
||||||
Sessions::CacheIn.set( self.client_key, true, { expires_in: @ttl.seconds } )
|
Sessions::CacheIn.set( client_key, true, { expires_in: @ttl.seconds } )
|
||||||
|
|
||||||
# check if min one ticket has changed
|
# check if min one ticket has changed
|
||||||
last_ticket_change = Ticket.latest_change
|
last_ticket_change = Ticket.latest_change
|
||||||
|
@ -45,7 +45,7 @@ class Sessions::Backend::TicketOverviewIndex
|
||||||
@last_ticket_change = last_ticket_change
|
@last_ticket_change = last_ticket_change
|
||||||
|
|
||||||
# load current data
|
# load current data
|
||||||
data = self.load
|
data = load
|
||||||
|
|
||||||
return if !data
|
return if !data
|
||||||
|
|
||||||
|
|
|
@ -46,11 +46,11 @@ class Sessions::Backend::TicketOverviewList
|
||||||
|
|
||||||
# check interval
|
# check interval
|
||||||
Rails.logger.debug "LOG 1 #{@user.inspect}"
|
Rails.logger.debug "LOG 1 #{@user.inspect}"
|
||||||
return if Sessions::CacheIn.get( self.client_key )
|
return if Sessions::CacheIn.get( client_key )
|
||||||
|
|
||||||
# reset check interval
|
# reset check interval
|
||||||
Rails.logger.debug "LOG 2 #{@ttl.seconds}"
|
Rails.logger.debug "LOG 2 #{@ttl.seconds}"
|
||||||
Sessions::CacheIn.set( self.client_key, true, { expires_in: @ttl.seconds } )
|
Sessions::CacheIn.set( client_key, true, { expires_in: @ttl.seconds } )
|
||||||
|
|
||||||
# check if min one ticket has changed
|
# check if min one ticket has changed
|
||||||
last_ticket_change = Ticket.latest_change
|
last_ticket_change = Ticket.latest_change
|
||||||
|
@ -59,7 +59,7 @@ class Sessions::Backend::TicketOverviewList
|
||||||
@last_ticket_change = last_ticket_change
|
@last_ticket_change = last_ticket_change
|
||||||
|
|
||||||
# load current data
|
# load current data
|
||||||
items = self.load
|
items = load
|
||||||
Rails.logger.debug "LOG 4 #{items.inspect}"
|
Rails.logger.debug "LOG 4 #{items.inspect}"
|
||||||
return if !items
|
return if !items
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ module Sessions::CacheIn
|
||||||
|
|
||||||
def self.get( key, params = {} )
|
def self.get( key, params = {} )
|
||||||
# puts 'CacheIn.get:' + key + '-' + @@data[ key ].inspect
|
# puts 'CacheIn.get:' + key + '-' + @@data[ key ].inspect
|
||||||
return if self.expired( key, params )
|
return if expired( key, params )
|
||||||
@@data[ key ]
|
@@data[ key ]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,9 +2,9 @@ class Sessions::Client
|
||||||
|
|
||||||
def initialize( client_id )
|
def initialize( client_id )
|
||||||
@client_id = client_id
|
@client_id = client_id
|
||||||
self.log '---client start ws connection---'
|
log '---client start ws connection---'
|
||||||
self.fetch
|
fetch
|
||||||
self.log '---client exiting ws connection---'
|
log '---client exiting ws connection---'
|
||||||
end
|
end
|
||||||
|
|
||||||
def fetch
|
def fetch
|
||||||
|
@ -49,12 +49,12 @@ class Sessions::Client
|
||||||
end
|
end
|
||||||
|
|
||||||
loop_count += 1
|
loop_count += 1
|
||||||
self.log "---client - looking for data of user #{user.id}"
|
log "---client - looking for data of user #{user.id}"
|
||||||
|
|
||||||
# push messages from backends
|
# push messages from backends
|
||||||
backend_pool.each(&:push)
|
backend_pool.each(&:push)
|
||||||
|
|
||||||
self.log '---/client-'
|
log '---/client-'
|
||||||
|
|
||||||
# start faster in the beginnig
|
# start faster in the beginnig
|
||||||
if loop_count < 20
|
if loop_count < 20
|
||||||
|
|
|
@ -51,7 +51,7 @@ returns
|
||||||
next if !config_item[:adapter]
|
next if !config_item[:adapter]
|
||||||
|
|
||||||
# load backend
|
# load backend
|
||||||
backend = self.load_adapter( config_item[:adapter] )
|
backend = load_adapter( config_item[:adapter] )
|
||||||
next if !backend
|
next if !backend
|
||||||
|
|
||||||
user_auth = backend.check( params, config_item )
|
user_auth = backend.check( params, config_item )
|
||||||
|
|
Loading…
Reference in a new issue