Exemple #1
0
bool CUserItem::setUserRightsFromString( const wxString& strRights )
{
    // Privileges
    if ( strRights.Length() ) {
        
        wxStringTokenizer tkz( strRights, wxT("/") );
        
        int idx=0;
        do {
            
            wxString str = tkz.GetNextToken();
            if (str.IsSameAs(_("admin"), false)) {
                // All rights
                //memset( m_userRights, 0xff, sizeof( m_userRights ) );
                // All rights
                for (int i= 0; i<USER_PRIVILEGE_BYTES; i++ ) {
                    setUserRights( i, 0xff );
                }
            } 
            else if (str.IsSameAs(_("user"), false)) {
                // A standard user
                setUserRights( 0, 0x06 );
            } 
            else if (str.IsSameAs(_("driver"), false)) {
                // A standard driver
                setUserRights( 0, 0x0f );
            } 
            else {
                // Numerical
                unsigned long lval;
                str.ToULong( &lval );
                setUserRights( idx++, (uint8_t)lval );
            }
            
        } while ( tkz.HasMoreTokens() && ( idx < sizeof( m_userRights ) ) );
    }
    
    return true;
}
Exemple #2
0
int GuildManager::changeMemberLevel(ChatClient *player, Guild *guild,
                                    int playerId, int level)
{
    if (guild->checkInGuild(player->characterId) && guild->checkInGuild(playerId))
    {
        int playerLevel = guild->getUserPermissions(player->characterId);

        if (playerLevel == GAL_OWNER)
        {
            // player can modify anyones permissions
            setUserRights(guild, playerId, level);
            return 0;
        }
    }

    return -1;
}