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; }
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; }