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

65 lines
1.4 KiB
Ruby

# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
class Sequencer
class Unit
module Import
module Zendesk
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(zendesk_role) if respond_to?(zendesk_role, true)
logger.error "Unknown mapping for role '#{resource.role.name}' (method: #{zendesk_role})"
end_user
end
def zendesk_role
@zendesk_role ||= resource.role.name.tr('-', '_').to_sym
end
def end_user
[role_customer]
end
def agent
return [role_agent] if resource.restricted_agent
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