Convert received modes into roles and affiliations

This commit is contained in:
Florent Le Coz
2014-01-04 01:59:36 +01:00
parent baf03a7e20
commit e840704b58
11 changed files with 183 additions and 10 deletions
+32
View File
@@ -225,3 +225,35 @@ void Bridge::send_nickname_conflict_error(const Iid& iid, const std::string& nic
{
this->xmpp->send_nickname_conflict_error(iid.chan + "%" + iid.server, nickname, this->user_jid);
}
void Bridge::send_affiliation_role_change(const Iid& iid, const std::string& target, const char mode)
{
std::string role;
std::string affiliation;
if (mode == 0)
{
role = "participant";
affiliation = "none";
}
else if (mode == 'a')
{
role = "moderator";
affiliation = "owner";
}
else if (mode == 'o')
{
role = "moderator";
affiliation = "admin";
}
else if (mode == 'h')
{
role = "moderator";
affiliation = "member";
}
else if (mode == 'v')
{
role = "participant";
affiliation = "member";
}
this->xmpp->send_affiliation_role_change(iid.chan + "%" + iid.server, target, affiliation, role, this->user_jid);
}
+4
View File
@@ -87,6 +87,10 @@ public:
void send_nick_change(Iid&& iid, const std::string& old_nick, const std::string& new_nick, const bool self);
void kick_muc_user(Iid&& iid, const std::string& target, const std::string& reason, const std::string& author);
void send_nickname_conflict_error(const Iid& iid, const std::string& nickname);
/**
* Send a role/affiliation change, matching the change of mode for that user
*/
void send_affiliation_role_change(const Iid& iid, const std::string& target, const char mode);
/**
* Misc