Remove +o from users on deoper, plausible fix for bug #653 reported by Ankit. Let me know if it's still b0rked, please :)

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10940 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
w00t 2009-01-03 17:25:10 +00:00
parent 41bcf2c5a4
commit 67b482682e

View File

@ -839,6 +839,7 @@ void User::UnOper()
*/
this->oper.clear();
/* Remove all oper only modes from the user when the deoper - Bug #466*/
std::string moderemove("-");
@ -849,12 +850,13 @@ void User::UnOper()
moderemove += letter;
}
std::vector<std::string> parameters;
parameters.push_back(this->nick);
parameters.push_back(moderemove);
ServerInstance->Parser->CallHandler("MODE", parameters, this);
/* remove the user from the oper list. Will remove multiple entries as a safeguard against bug #404 */
ServerInstance->Users->all_opers.remove(this);
@ -872,6 +874,7 @@ void User::UnOper()
AllowedUserModes.reset();
AllowedChanModes.reset();
this->modes[UM_OPERATOR] = 0;
}
}