1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
/*
* Copyright (c) 2011 Kevin Smith
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#include <Swiftob/Users.h>
#include <iostream>
#include <Swiften/Base/foreach.h>
#include <Swiften/Client/Client.h>
#include <Swiftob/MUCs.h>
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;
}
|