Exchange XMPP contacts when invitee signs up
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

This commit is contained in:
2020-12-08 19:16:08 +01:00
parent 8a0d89ef60
commit ee72a32c7e
6 changed files with 82 additions and 10 deletions

View File

@@ -10,7 +10,11 @@ class CreateAccount < ApplicationService
def call
user = create_user_in_database
add_ldap_document
update_invitation(user.id) if @invitation.present?
if @invitation.present?
update_invitation(user.id)
exchange_xmpp_contacts
end
end
private
@@ -57,4 +61,23 @@ class CreateAccount < ApplicationService
def ldap_config
ldap_config ||= YAML.load(ERB.new(File.read("#{Rails.root}/config/ldap.yml")).result)[Rails.env]
end
def exchange_xmpp_contacts
#TODO enable in development when we have easy setup of ejabberd etc.
return if Rails.env.development?
ejabberd = EjabberdApiClient.new
inviter = @invitation.user
ejabberd.add_rosteritem({
"localuser": @username, "localhost": @domain,
"user": inviter.cn, "host": inviter.ou,
"nick": inviter.cn, "group": "Friends", "subs": "both"
})
ejabberd.add_rosteritem({
"localuser": inviter.cn, "localhost": inviter.ou,
"user": @username, "host": @domain,
"nick": @username, "group": "Friends", "subs": "both"
})
end
end