module EjabberdManager class ExchangeContacts < EjabberdManagerService def initialize(inviter:, invitee:) @inviter = inviter @invitee = invitee end def call return unless @inviter.service_enabled?(:ejabberd) && @invitee.service_enabled?(:ejabberd) && @inviter.preferences[:xmpp_exchange_contacts_with_invitees] add_rosteritem({ "localuser": @invitee.cn, "localhost": @invitee.ou, "user": @inviter.cn, "host": @inviter.ou, "nick": @inviter.cn, "group": Setting.ejabberd_buddy_roster, "subs": "both" }) add_rosteritem({ "localuser": @inviter.cn, "localhost": @inviter.ou, "user": @invitee.cn, "host": @invitee.ou, "nick": @invitee.cn, "group": Setting.ejabberd_buddy_roster, "subs": "both" }) end end end