diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 671509f45614716c0bcde841534a3c16e56a4497..ee46277bd4f56a2f97623b94803a4f7f86f2d372 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -150,7 +150,10 @@ void UserManager::handlePresence(Swift::Presence::ref presence) { // Create user class if it's not there if (!user) { // Admin user is not legacy network user, so do not create User class instance for him - if (m_component->inServerMode() && CONFIG_STRING(m_component->getConfig(), "service.admin_jid") == presence->getFrom().toBare().toString()) { + if (m_component->inServerMode()) { + std::vector const &x = CONFIG_VECTOR(m_component->getConfig(),"service.admin_jid"); + if (std::find(x.begin(), x.end(), presence->getFrom().toBare().toString()) != x.end()) { + // Send admin contact to the user. Swift::RosterPayload::ref payload = Swift::RosterPayload::ref(new Swift::RosterPayload()); Swift::RosterItemPayload item; @@ -167,6 +170,7 @@ void UserManager::handlePresence(Swift::Presence::ref presence) { response->setFrom(m_component->getJID()); m_component->getStanzaChannel()->sendPresence(response); return; + } } // No user and unavailable presence -> answer with unavailable