Example #1
0
    bool PrivilegeSet::hasPrivileges(const std::vector<Privilege>& desiredPrivileges) {
        for (std::vector<Privilege>::const_iterator iter = desiredPrivileges.begin(),
                 end = desiredPrivileges.end();
             iter != end; ++iter) {

            if (!hasPrivilege(*iter))
                return false;
        }
        return true;
    }
Example #2
0
/*!
    \details An user as changed a nick
    \param s is the string from Irc server
*/
void IrcChannel::userNickChange(QString s)
{
    // :[email protected] NICK :dddtre
    QRegExp r (":([^!]+).*\\sNICK\\s:(.*)");
    if(r.exactMatch(s)) 
    {
        QStringList l = r.capturedTexts();
        QListWidgetItem *it = findUser(l.at(1));
        if(it)
        {
            it->setText( hasPrivilege(it->text()) + l.at(2));
            mTextEdit->appendHtml("<font color=\"#ff0000\">User " + l.at(1) + " is now know as " + l.at(2) + "</font>");
        }
    }
}
Example #3
0
/*!
    \details Modify the current privilege for one user in this channel.
    \param s is the string from Irc server
*/
void IrcChannel::setUserPrivilege(QString s)
{
    // :[email protected] MODE #testmonkeystudio +o xiantia
    // * after sets mode: +o xiantia
    QRegExp r (":([^!]+).*\\sMODE\\s([^ ]+)\\s([^ ]+)\\s([^ ]+).*");
    if(r.exactMatch(s))
    {
        QStringList t = r.capturedTexts();
        if(t.at(2).toLower() == name())
        {
            QListWidgetItem *it = findUser(t.at(4));
            if(it)
            {
                mTextEdit->appendHtml("<font color=\"#00ff00\">* " + t.at(1) + " sets mode : " + t.at(3) + " " + t.at(4) + "</font>");
                QString n = userPrefix.value(t.at(3)); // get the corresponding tag og privilege
                QString u = it->text();
                if(hasPrivilege(u).isEmpty()) // user haven't privilege, add this 
                    it->setText( n + u);
                else 
                    it->setText( u.replace(0,1, n) ); // user have privilege, modify this
            }
        }
    }
}