/* * Copyright (c) 2011 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include #include #include #include #include using namespace Swift; Users::Users(Client* client, MUCs* mucs) { client_ = client; mucs_ = mucs; } /* TODO: Store in roster */ void Users::clearAll() { users_.clear(); } void Users::addUser(const User& user) { users_.push_back(user); } Users::User::Role Users::getRoleForSender(Message::ref message) { JID jid = message->getFrom(); MUC::ref muc = mucs_->getMUC(message->getFrom().toBare()); if (muc && muc->hasOccupant(message->getFrom().getResource())) { MUCOccupant occupant = muc->getOccupant(message->getFrom().getResource()); if (occupant.getRealJID()) { jid = occupant.getRealJID().get(); } } foreach (User user, users_) { if (user.getJID().equals(jid.toBare(), JID::WithoutResource)) { return user.getRole(); } } return User::Unknown; }