|
@@ -327,11 +327,7 @@ func (client *Client) applyUserModeChanges(force bool, changes ModeChanges) Mode
|
327
|
327
|
// MODE <target> [<modestring> [<mode arguments>...]]
|
328
|
328
|
func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
329
|
329
|
nickname, err := CasefoldName(msg.Params[0])
|
330
|
|
-
|
331
|
330
|
target := server.clients.Get(nickname)
|
332
|
|
- targetNick := target.getNick()
|
333
|
|
- hasPrivs := client == target || msg.Command == "SAMODE"
|
334
|
|
-
|
335
|
331
|
if err != nil || target == nil {
|
336
|
332
|
if len(msg.Params[0]) > 0 {
|
337
|
333
|
client.Send(nil, server.name, ERR_NOSUCHNICK, client.nick, msg.Params[0], "No such nick")
|
|
@@ -339,6 +335,9 @@ func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
|
339
|
335
|
return false
|
340
|
336
|
}
|
341
|
337
|
|
|
338
|
+ targetNick := target.getNick()
|
|
339
|
+ hasPrivs := client == target || msg.Command == "SAMODE"
|
|
340
|
+
|
342
|
341
|
if !hasPrivs {
|
343
|
342
|
if len(msg.Params) > 1 {
|
344
|
343
|
client.Send(nil, server.name, ERR_USERSDONTMATCH, client.nick, "Can't change modes for other users")
|