Fixed missing downcase for login of agents and customers.
This commit is contained in:
parent
87e1a92e39
commit
70f5f21558
1 changed files with 56 additions and 56 deletions
|
@ -6,13 +6,13 @@ module Import::OTRS
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
|
||||||
result = request_json( :Subaction => 'List', 1)
|
result = request_json(Subaction: 'List', 1)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
{ some json structure }
|
{ some json structure }
|
||||||
|
|
||||||
result = request_json( :Subaction => 'List' )
|
result = request_json(Subaction: 'List')
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -131,8 +131,8 @@ module Import::OTRS
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.json(response)
|
def self.json(response)
|
||||||
data = Encode.conv( 'utf8', response.body.to_s )
|
data = Encode.conv('utf8', response.body.to_s)
|
||||||
JSON.parse( data )
|
JSON.parse(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -257,13 +257,13 @@ module Import::OTRS
|
||||||
return
|
return
|
||||||
|
|
||||||
{
|
{
|
||||||
:Ticket => {
|
Ticket: {
|
||||||
:total => 1234,
|
total: 1234,
|
||||||
:done => 13,
|
done: 13,
|
||||||
},
|
},
|
||||||
:Base => {
|
Base: {
|
||||||
:total => 1234,
|
total: 1234,
|
||||||
:done => 13,
|
done: 13,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -612,7 +612,7 @@ module Import::OTRS
|
||||||
|
|
||||||
# find owner
|
# find owner
|
||||||
if ticket_new[:owner]
|
if ticket_new[:owner]
|
||||||
user = User.lookup(login: ticket_new[:owner])
|
user = User.find_by(login: ticket_new[:owner].downcase)
|
||||||
ticket_new[:owner_id] = if user
|
ticket_new[:owner_id] = if user
|
||||||
user.id
|
user.id
|
||||||
else
|
else
|
||||||
|
@ -623,7 +623,7 @@ module Import::OTRS
|
||||||
|
|
||||||
# find customer
|
# find customer
|
||||||
if ticket_new[:customer]
|
if ticket_new[:customer]
|
||||||
user = User.lookup(login: ticket_new[:customer])
|
user = User.lookup(login: ticket_new[:customer].downcase)
|
||||||
ticket_new[:customer_id] = if user
|
ticket_new[:customer_id] = if user
|
||||||
user.id
|
user.id
|
||||||
else
|
else
|
||||||
|
@ -682,41 +682,41 @@ module Import::OTRS
|
||||||
}
|
}
|
||||||
|
|
||||||
if article_new[:sender] == 'customer'
|
if article_new[:sender] == 'customer'
|
||||||
article_new[:sender_id] = Ticket::Article::Sender.lookup( name: 'Customer' ).id
|
article_new[:sender_id] = Ticket::Article::Sender.lookup(name: 'Customer').id
|
||||||
article_new.delete( :sender )
|
article_new.delete(:sender)
|
||||||
end
|
end
|
||||||
if article_new[:sender] == 'agent'
|
if article_new[:sender] == 'agent'
|
||||||
article_new[:sender_id] = Ticket::Article::Sender.lookup( name: 'Agent' ).id
|
article_new[:sender_id] = Ticket::Article::Sender.lookup(name: 'Agent').id
|
||||||
article_new.delete( :sender )
|
article_new.delete(:sender)
|
||||||
end
|
end
|
||||||
if article_new[:sender] == 'system'
|
if article_new[:sender] == 'system'
|
||||||
article_new[:sender_id] = Ticket::Article::Sender.lookup( name: 'System' ).id
|
article_new[:sender_id] = Ticket::Article::Sender.lookup(name: 'System').id
|
||||||
article_new.delete( :sender )
|
article_new.delete(:sender)
|
||||||
end
|
end
|
||||||
|
|
||||||
if article_new[:type] == 'email-external'
|
if article_new[:type] == 'email-external'
|
||||||
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'email' ).id
|
article_new[:type_id] = Ticket::Article::Type.lookup(name: 'email').id
|
||||||
article_new[:internal] = false
|
article_new[:internal] = false
|
||||||
elsif article_new[:type] == 'email-internal'
|
elsif article_new[:type] == 'email-internal'
|
||||||
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'email' ).id
|
article_new[:type_id] = Ticket::Article::Type.lookup(name: 'email').id
|
||||||
article_new[:internal] = true
|
article_new[:internal] = true
|
||||||
elsif article_new[:type] == 'note-external'
|
elsif article_new[:type] == 'note-external'
|
||||||
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'note' ).id
|
article_new[:type_id] = Ticket::Article::Type.lookup(name: 'note').id
|
||||||
article_new[:internal] = false
|
article_new[:internal] = false
|
||||||
elsif article_new[:type] == 'note-internal'
|
elsif article_new[:type] == 'note-internal'
|
||||||
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'note' ).id
|
article_new[:type_id] = Ticket::Article::Type.lookup(name: 'note').id
|
||||||
article_new[:internal] = true
|
article_new[:internal] = true
|
||||||
elsif article_new[:type] == 'phone'
|
elsif article_new[:type] == 'phone'
|
||||||
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'phone' ).id
|
article_new[:type_id] = Ticket::Article::Type.lookup(name: 'phone').id
|
||||||
article_new[:internal] = false
|
article_new[:internal] = false
|
||||||
elsif article_new[:type] == 'webrequest'
|
elsif article_new[:type] == 'webrequest'
|
||||||
article_new[:type_id] = Ticket::Article::Type.lookup( name: 'web' ).id
|
article_new[:type_id] = Ticket::Article::Type.lookup(name: 'web').id
|
||||||
article_new[:internal] = false
|
article_new[:internal] = false
|
||||||
else
|
else
|
||||||
article_new[:type_id] = 9
|
article_new[:type_id] = 9
|
||||||
end
|
end
|
||||||
article_new.delete( :type )
|
article_new.delete(:type)
|
||||||
article_object = Ticket::Article.find_by( id: article_new[:id] )
|
article_object = Ticket::Article.find_by(id: article_new[:id])
|
||||||
|
|
||||||
# set state types
|
# set state types
|
||||||
if article_object
|
if article_object
|
||||||
|
@ -798,8 +798,8 @@ module Import::OTRS
|
||||||
if data =~ /%%(.+?)%%(.+?)%%/
|
if data =~ /%%(.+?)%%(.+?)%%/
|
||||||
from = $1
|
from = $1
|
||||||
to = $2
|
to = $2
|
||||||
state_from = Ticket::State.lookup( name: from )
|
state_from = Ticket::State.lookup(name: from)
|
||||||
state_to = Ticket::State.lookup( name: to )
|
state_to = Ticket::State.lookup(name: to)
|
||||||
if state_from
|
if state_from
|
||||||
from_id = state_from.id
|
from_id = state_from.id
|
||||||
end
|
end
|
||||||
|
@ -922,13 +922,13 @@ module Import::OTRS
|
||||||
}
|
}
|
||||||
|
|
||||||
# check if state already exists
|
# check if state already exists
|
||||||
state_old = Ticket::State.lookup( id: state_new[:id] )
|
state_old = Ticket::State.lookup(id: state_new[:id])
|
||||||
|
|
||||||
# set state types
|
# set state types
|
||||||
if state['TypeName'] == 'pending auto'
|
if state['TypeName'] == 'pending auto'
|
||||||
state['TypeName'] = 'pending action'
|
state['TypeName'] = 'pending action'
|
||||||
end
|
end
|
||||||
state_type = Ticket::StateType.lookup( name: state['TypeName'] )
|
state_type = Ticket::StateType.lookup(name: state['TypeName'])
|
||||||
state_new[:state_type_id] = state_type.id
|
state_new[:state_type_id] = state_type.id
|
||||||
if state_old
|
if state_old
|
||||||
state_old.update_attributes(state_new)
|
state_old.update_attributes(state_new)
|
||||||
|
@ -969,7 +969,7 @@ module Import::OTRS
|
||||||
}
|
}
|
||||||
|
|
||||||
# check if state already exists
|
# check if state already exists
|
||||||
priority_old = Ticket::Priority.lookup( id: priority_new[:id] )
|
priority_old = Ticket::Priority.lookup(id: priority_new[:id])
|
||||||
|
|
||||||
# set state types
|
# set state types
|
||||||
if priority_old
|
if priority_old
|
||||||
|
@ -1010,7 +1010,7 @@ module Import::OTRS
|
||||||
}
|
}
|
||||||
|
|
||||||
# check if state already exists
|
# check if state already exists
|
||||||
group_old = Group.lookup( id: group_new[:id] )
|
group_old = Group.lookup(id: group_new[:id])
|
||||||
|
|
||||||
# set state types
|
# set state types
|
||||||
if group_old
|
if group_old
|
||||||
|
@ -1070,7 +1070,7 @@ module Import::OTRS
|
||||||
end
|
end
|
||||||
|
|
||||||
# check if agent already exists
|
# check if agent already exists
|
||||||
user_old = User.lookup( id: user_new[:id] )
|
user_old = User.lookup(id: user_new[:id])
|
||||||
|
|
||||||
# check if login is already used
|
# check if login is already used
|
||||||
login_in_use = User.where( "login = ? AND id != #{user_new[:id]}", user_new[:login].downcase ).count
|
login_in_use = User.where( "login = ? AND id != #{user_new[:id]}", user_new[:login].downcase ).count
|
||||||
|
@ -1084,7 +1084,7 @@ module Import::OTRS
|
||||||
|
|
||||||
# only update roles if different (reduce sql statements)
|
# only update roles if different (reduce sql statements)
|
||||||
if user_old.role_ids == user_new[:role_ids]
|
if user_old.role_ids == user_new[:role_ids]
|
||||||
user_new.delete( :role_ids )
|
user_new.delete(:role_ids)
|
||||||
end
|
end
|
||||||
|
|
||||||
user_old.update_attributes(user_new)
|
user_old.update_attributes(user_new)
|
||||||
|
@ -1172,7 +1172,7 @@ module Import::OTRS
|
||||||
}
|
}
|
||||||
|
|
||||||
local_roles.each {|role|
|
local_roles.each {|role|
|
||||||
role_lookup = Role.lookup( name: role )
|
role_lookup = Role.lookup(name: role)
|
||||||
next if !role_lookup
|
next if !role_lookup
|
||||||
local_role_ids.push role_lookup.id
|
local_role_ids.push role_lookup.id
|
||||||
}
|
}
|
||||||
|
@ -1203,8 +1203,8 @@ module Import::OTRS
|
||||||
UserCountry: :country,
|
UserCountry: :country,
|
||||||
}
|
}
|
||||||
|
|
||||||
role_agent = Role.lookup( name: 'Agent' )
|
role_agent = Role.lookup(name: 'Agent')
|
||||||
role_customer = Role.lookup( name: 'Customer' )
|
role_customer = Role.lookup(name: 'Customer')
|
||||||
|
|
||||||
records.each { |user|
|
records.each { |user|
|
||||||
_set_valid(user)
|
_set_valid(user)
|
||||||
|
@ -1223,17 +1223,17 @@ module Import::OTRS
|
||||||
}
|
}
|
||||||
|
|
||||||
# check if customer already exists
|
# check if customer already exists
|
||||||
user_old = User.lookup( login: user_new[:login] )
|
user_old = User.lookup(login: user_new[:login])
|
||||||
|
|
||||||
# create / update agent
|
# create / update agent
|
||||||
if user_old
|
if user_old
|
||||||
|
|
||||||
# do not update user if it is already agent
|
# do not update user if it is already agent
|
||||||
if !user_old.role_ids.include?( role_agent.id )
|
if !user_old.role_ids.include?(role_agent.id)
|
||||||
|
|
||||||
# only update roles if different (reduce sql statements)
|
# only update roles if different (reduce sql statements)
|
||||||
if user_old.role_ids == user_new[:role_ids]
|
if user_old.role_ids == user_new[:role_ids]
|
||||||
user_new.delete( :role_ids )
|
user_new.delete(:role_ids)
|
||||||
end
|
end
|
||||||
log "update User.find(#{user_old[:id]})"
|
log "update User.find(#{user_old[:id]})"
|
||||||
user_old.update_attributes(user_new)
|
user_old.update_attributes(user_new)
|
||||||
|
@ -1252,7 +1252,7 @@ module Import::OTRS
|
||||||
if user['UserCustomerID']
|
if user['UserCustomerID']
|
||||||
organizations.each {|organization|
|
organizations.each {|organization|
|
||||||
next if user['UserCustomerID'] != organization['CustomerID']
|
next if user['UserCustomerID'] != organization['CustomerID']
|
||||||
organization = Organization.lookup(name: organization['CustomerCompanyName'] )
|
organization = Organization.lookup(name: organization['CustomerCompanyName'])
|
||||||
organization_id = organization.id
|
organization_id = organization.id
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -1285,7 +1285,7 @@ module Import::OTRS
|
||||||
}
|
}
|
||||||
|
|
||||||
# check if state already exists
|
# check if state already exists
|
||||||
organization_old = Organization.lookup( name: organization_new[:name] )
|
organization_old = Organization.lookup(name: organization_new[:name])
|
||||||
|
|
||||||
# set state types
|
# set state types
|
||||||
if organization_old
|
if organization_old
|
||||||
|
@ -1306,22 +1306,22 @@ module Import::OTRS
|
||||||
|
|
||||||
# fqdn
|
# fqdn
|
||||||
if setting['Key'] == 'FQDN'
|
if setting['Key'] == 'FQDN'
|
||||||
Setting.set( 'fqdn', setting['Value'] )
|
Setting.set('fqdn', setting['Value'])
|
||||||
end
|
end
|
||||||
|
|
||||||
# http type
|
# http type
|
||||||
if setting['Key'] == 'HttpType'
|
if setting['Key'] == 'HttpType'
|
||||||
Setting.set( 'http_type', setting['Value'] )
|
Setting.set('http_type', setting['Value'])
|
||||||
end
|
end
|
||||||
|
|
||||||
# system id
|
# system id
|
||||||
if setting['Key'] == 'SystemID'
|
if setting['Key'] == 'SystemID'
|
||||||
Setting.set( 'system_id', setting['Value'] )
|
Setting.set('system_id', setting['Value'])
|
||||||
end
|
end
|
||||||
|
|
||||||
# organization
|
# organization
|
||||||
if setting['Key'] == 'Organization'
|
if setting['Key'] == 'Organization'
|
||||||
Setting.set( 'organization', setting['Value'] )
|
Setting.set('organization', setting['Value'])
|
||||||
end
|
end
|
||||||
|
|
||||||
# sending emails
|
# sending emails
|
||||||
|
@ -1332,17 +1332,17 @@ module Import::OTRS
|
||||||
# number generater
|
# number generater
|
||||||
if setting['Key'] == 'Ticket::NumberGenerator'
|
if setting['Key'] == 'Ticket::NumberGenerator'
|
||||||
if setting['Value'] == 'Kernel::System::Ticket::Number::DateChecksum'
|
if setting['Value'] == 'Kernel::System::Ticket::Number::DateChecksum'
|
||||||
Setting.set( 'ticket_number', 'Ticket::Number::Date' )
|
Setting.set('ticket_number', 'Ticket::Number::Date')
|
||||||
Setting.set( 'ticket_number_date', { checksum: true } )
|
Setting.set('ticket_number_date', { checksum: true })
|
||||||
elsif setting['Value'] == 'Kernel::System::Ticket::Number::Date'
|
elsif setting['Value'] == 'Kernel::System::Ticket::Number::Date'
|
||||||
Setting.set( 'ticket_number', 'Ticket::Number::Date' )
|
Setting.set('ticket_number', 'Ticket::Number::Date')
|
||||||
Setting.set( 'ticket_number_date', { checksum: false } )
|
Setting.set('ticket_number_date', { checksum: false })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# ticket hook
|
# ticket hook
|
||||||
if setting['Key'] == 'Ticket::Hook'
|
if setting['Key'] == 'Ticket::Hook'
|
||||||
Setting.set( 'ticket_hook', setting['Value'] )
|
Setting.set('ticket_hook', setting['Value'])
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -1381,7 +1381,7 @@ module Import::OTRS
|
||||||
}
|
}
|
||||||
|
|
||||||
# fix OTRS 3.1 bug, no close time if ticket is created
|
# fix OTRS 3.1 bug, no close time if ticket is created
|
||||||
if record['StateType'] == 'closed' && ( !record['Closed'] || record['Closed'].empty? )
|
if record['StateType'] == 'closed' && (!record['Closed'] || record['Closed'].empty?)
|
||||||
record['Closed'] = record['Created']
|
record['Closed'] = record['Created']
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1391,7 +1391,7 @@ module Import::OTRS
|
||||||
data.each { |key, value|
|
data.each { |key, value|
|
||||||
next if !value
|
next if !value
|
||||||
next if value.class != String
|
next if value.class != String
|
||||||
data[key] = Encode.conv( 'utf8', value )
|
data[key] = Encode.conv('utf8', value)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1411,7 +1411,7 @@ module Import::OTRS
|
||||||
|
|
||||||
email = nil
|
email = nil
|
||||||
begin
|
begin
|
||||||
email = Mail::Address.new( article['from'] ).address
|
email = Mail::Address.new(article['from']).address
|
||||||
rescue
|
rescue
|
||||||
email = article['from']
|
email = article['from']
|
||||||
if article['from'] =~ /<(.+?)>/
|
if article['from'] =~ /<(.+?)>/
|
||||||
|
@ -1432,9 +1432,9 @@ module Import::OTRS
|
||||||
end
|
end
|
||||||
|
|
||||||
# do extra decoding because we needed to use field.value
|
# do extra decoding because we needed to use field.value
|
||||||
display_name = Mail::Field.new( 'X-From', display_name ).to_s
|
display_name = Mail::Field.new('X-From', display_name).to_s
|
||||||
|
|
||||||
roles = Role.lookup( name: 'Customer' )
|
roles = Role.lookup(name: 'Customer')
|
||||||
begin
|
begin
|
||||||
user = User.create(
|
user = User.create(
|
||||||
login: email,
|
login: email,
|
||||||
|
|
Loading…
Reference in a new issue