mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-10 22:19:31 +01:00
check permissions before doing channel modes
This commit is contained in:
parent
56cb8512dc
commit
9b89f1a0fb
@ -102,6 +102,11 @@ func (channel *Channel) GetUsers(replier Replier) {
|
|||||||
replier.Reply(NewNamesReply(channel))
|
replier.Reply(NewNamesReply(channel))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (channel *Channel) ClientIsOperator(client *Client) bool {
|
||||||
|
// TODO client-channel relations
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (channel *Channel) Nicks() []string {
|
func (channel *Channel) Nicks() []string {
|
||||||
nicks := make([]string, len(channel.members))
|
nicks := make([]string, len(channel.members))
|
||||||
i := 0
|
i := 0
|
||||||
@ -219,13 +224,16 @@ func (msg *ChannelModeCommand) HandleChannel(channel *Channel) {
|
|||||||
}
|
}
|
||||||
client.Reply(RplEndOfBanList(channel))
|
client.Reply(RplEndOfBanList(channel))
|
||||||
case NoOutside:
|
case NoOutside:
|
||||||
// TODO perms
|
if channel.ClientIsOperator(client) {
|
||||||
switch modeOp.op {
|
switch modeOp.op {
|
||||||
case Add:
|
case Add:
|
||||||
channel.noOutside = true
|
channel.noOutside = true
|
||||||
case Remove:
|
case Remove:
|
||||||
channel.noOutside = false
|
channel.noOutside = false
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
client.Reply(ErrChanOPrivIsNeeded(channel))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,3 +334,9 @@ func ErrCannotSendToChan(channel *Channel) Reply {
|
|||||||
return NewNumericReply(channel.server, ERR_CANNOTSENDTOCHAN,
|
return NewNumericReply(channel.server, ERR_CANNOTSENDTOCHAN,
|
||||||
"%s :Cannot send to channel", channel.name)
|
"%s :Cannot send to channel", channel.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// <channel> :You're not channel operator
|
||||||
|
func ErrChanOPrivIsNeeded(channel *Channel) Reply {
|
||||||
|
return NewNumericReply(channel.server, ERR_CHANOPRIVSNEEDED,
|
||||||
|
"%s :You're not channel operator", channel.name)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user