3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-14 07:59:31 +01:00

make channel founder unkickable

This commit is contained in:
Shivaram Lingamneni 2020-09-09 23:15:00 -04:00
parent f5e9fd3e77
commit 32bb10f6c6

View File

@ -553,9 +553,12 @@ func (channel *Channel) ClientHasPrivsOver(client *Client, target *Client) bool
targetModes := channel.members[target] targetModes := channel.members[target]
channel.stateMutex.RUnlock() channel.stateMutex.RUnlock()
if founder != "" && founder == client.Account() { if founder != "" {
// #950: founder can kick or whatever without actually having the +q mode if founder == client.Account() {
return true return true // #950: founder can take any privileged action without actually having +q
} else if founder == target.Account() {
return false // conversely, only the founder can kick the founder
}
} }
return channelUserModeHasPrivsOver(clientModes.HighestChannelUserMode(), targetModes.HighestChannelUserMode()) return channelUserModeHasPrivsOver(clientModes.HighestChannelUserMode(), targetModes.HighestChannelUserMode())