diff options
Diffstat (limited to 'Swift/Controllers')
| -rw-r--r-- | Swift/Controllers/Chat/AutoAcceptMUCInviteDecider.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Swift/Controllers/Chat/AutoAcceptMUCInviteDecider.h b/Swift/Controllers/Chat/AutoAcceptMUCInviteDecider.h index d6e069f..2265c3b 100644 --- a/Swift/Controllers/Chat/AutoAcceptMUCInviteDecider.h +++ b/Swift/Controllers/Chat/AutoAcceptMUCInviteDecider.h @@ -9,44 +9,45 @@ * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include <Swiften/Roster/XMPPRoster.h> #include <Swiften/Elements/MUCInvitationPayload.h> #include <Swift/Controllers/Settings/SettingsProvider.h> #include <Swift/Controllers/SettingConstants.h> namespace Swift { class AutoAcceptMUCInviteDecider { public: AutoAcceptMUCInviteDecider(const JID& domain, XMPPRoster* roster, SettingsProvider* settings) : domain_(domain), roster_(roster), settings_(settings) { } bool isAutoAcceptedInvite(const JID& from, MUCInvitationPayload::ref invite) { if (!invite->getIsImpromptu()) { return false; /* always ask the user for normal MUC invites */ } if (invite->getIsContinuation()) { return true; } std::string auto_accept_mode = settings_->getSetting(SettingConstants::INVITE_AUTO_ACCEPT_MODE); if (auto_accept_mode == "no") { return false; } else if (auto_accept_mode == "presence") { return roster_->getSubscriptionStateForJID(from) == RosterItemPayload::From || roster_->getSubscriptionStateForJID(from) == RosterItemPayload::Both; } else if (auto_accept_mode == "domain") { return roster_->getSubscriptionStateForJID(from) == RosterItemPayload::From || roster_->getSubscriptionStateForJID(from) == RosterItemPayload::Both || from.getDomain() == domain_; } else { assert(false); + return false; } } private: JID domain_; XMPPRoster* roster_; SettingsProvider* settings_; }; } |
Swift