mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-15 08:29:31 +01:00
SAMODE +f shouldn't require channel privileges
Reported by @Mikaela; normally this requires +o or higher on the channel that is the target of the forward, but SAMODE should bypass this check.
This commit is contained in:
parent
dc75b24d23
commit
4bffdba610
@ -267,12 +267,12 @@ func (channel *Channel) ApplyChannelModeChanges(client *Client, isSamode bool, c
|
|||||||
} else if ch == channel {
|
} else if ch == channel {
|
||||||
rb.Add(nil, client.server.name, ERR_INVALIDMODEPARAM, details.nick, chname, string(change.Mode), utils.SafeErrorParam(change.Arg), fmt.Sprintf(client.t("You can't forward a channel to itself")))
|
rb.Add(nil, client.server.name, ERR_INVALIDMODEPARAM, details.nick, chname, string(change.Mode), utils.SafeErrorParam(change.Arg), fmt.Sprintf(client.t("You can't forward a channel to itself")))
|
||||||
} else {
|
} else {
|
||||||
if !ch.ClientIsAtLeast(client, modes.ChannelOperator) {
|
if isSamode || ch.ClientIsAtLeast(client, modes.ChannelOperator) {
|
||||||
rb.Add(nil, client.server.name, ERR_CHANOPRIVSNEEDED, details.nick, ch.Name(), client.t("You must be a channel operator in the channel you are forwarding to"))
|
|
||||||
} else {
|
|
||||||
change.Arg = ch.Name()
|
change.Arg = ch.Name()
|
||||||
channel.setForward(change.Arg)
|
channel.setForward(change.Arg)
|
||||||
applied = append(applied, change)
|
applied = append(applied, change)
|
||||||
|
} else {
|
||||||
|
rb.Add(nil, client.server.name, ERR_CHANOPRIVSNEEDED, details.nick, ch.Name(), client.t("You must be a channel operator in the channel you are forwarding to"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case modes.Remove:
|
case modes.Remove:
|
||||||
|
Loading…
Reference in New Issue
Block a user