|
@@ -102,6 +102,11 @@ func (channel *Channel) GetUsers(replier Replier) {
|
102
|
102
|
replier.Reply(NewNamesReply(channel))
|
103
|
103
|
}
|
104
|
104
|
|
|
105
|
+func (channel *Channel) ClientIsOperator(client *Client) bool {
|
|
106
|
+ // TODO client-channel relations
|
|
107
|
+ return false
|
|
108
|
+}
|
|
109
|
+
|
105
|
110
|
func (channel *Channel) Nicks() []string {
|
106
|
111
|
nicks := make([]string, len(channel.members))
|
107
|
112
|
i := 0
|
|
@@ -219,12 +224,15 @@ func (msg *ChannelModeCommand) HandleChannel(channel *Channel) {
|
219
|
224
|
}
|
220
|
225
|
client.Reply(RplEndOfBanList(channel))
|
221
|
226
|
case NoOutside:
|
222
|
|
- // TODO perms
|
223
|
|
- switch modeOp.op {
|
224
|
|
- case Add:
|
225
|
|
- channel.noOutside = true
|
226
|
|
- case Remove:
|
227
|
|
- channel.noOutside = false
|
|
227
|
+ if channel.ClientIsOperator(client) {
|
|
228
|
+ switch modeOp.op {
|
|
229
|
+ case Add:
|
|
230
|
+ channel.noOutside = true
|
|
231
|
+ case Remove:
|
|
232
|
+ channel.noOutside = false
|
|
233
|
+ }
|
|
234
|
+ } else {
|
|
235
|
+ client.Reply(ErrChanOPrivIsNeeded(channel))
|
228
|
236
|
}
|
229
|
237
|
}
|
230
|
238
|
}
|