trabajo-afectivo/lib/sequencer/unit/import/kayako/user/roles.rb

72 lines
1.5 KiB
Ruby
Raw Normal View History

2022-01-01 13:38:12 +00:00
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
class Sequencer
class Unit
module Import
module Kayako
module User
class Roles < Sequencer::Unit::Common::Provider::Named
uses :resource, :initiator
private
def roles
return admin if initiator
map_roles
end
def map_roles
return send(kayako_role) if kayako_role && respond_to?(kayako_role, true)
logger.debug "Unknown mapping for role '#{resource['role']['type']}' (method: #{kayako_role})"
customer
end
def kayako_role
@kayako_role ||= resource['role']&.fetch('type')&.downcase
end
def customer
[role_customer]
end
def collaborators
agent
end
def agent
[role_agent]
end
def owner
admin
end
def admin
[role_admin, role_agent]
end
def role_admin
@role_admin ||= lookup('Admin')
end
def role_agent
@role_agent ||= lookup('Agent')
end
def role_customer
@role_customer ||= lookup('Customer')
end
def lookup(role_name)
::Role.lookup(name: role_name)
end
end
end
end
end
end
end