|
@@ -826,7 +826,7 @@ func formatBanForListing(client *Client, key string, info IPBanInfo) string {
|
826
|
826
|
func dlineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
|
827
|
827
|
// check oper permissions
|
828
|
828
|
oper := client.Oper()
|
829
|
|
- if oper == nil || !oper.Class.Capabilities.Has("ban") {
|
|
829
|
+ if !oper.HasRoleCapab("ban") {
|
830
|
830
|
rb.Add(nil, server.name, ERR_NOPRIVS, client.nick, msg.Command, client.t("Insufficient oper privs"))
|
831
|
831
|
return false
|
832
|
832
|
}
|
|
@@ -1273,6 +1273,10 @@ func sajoinHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
|
1273
|
1273
|
}
|
1274
|
1274
|
}
|
1275
|
1275
|
|
|
1276
|
+ message := fmt.Sprintf("Operator %s ran SAJOIN %s", client.Oper().Name, strings.Join(msg.Params, " "))
|
|
1277
|
+ server.snomasks.Send(sno.LocalOpers, message)
|
|
1278
|
+ server.logger.Info("opers", message)
|
|
1279
|
+
|
1276
|
1280
|
channels := strings.Split(channelString, ",")
|
1277
|
1281
|
for _, chname := range channels {
|
1278
|
1282
|
err, _ := server.channels.Join(target, chname, "", true, rb)
|
|
@@ -1364,7 +1368,7 @@ func klineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
|
1364
|
1368
|
details := client.Details()
|
1365
|
1369
|
// check oper permissions
|
1366
|
1370
|
oper := client.Oper()
|
1367
|
|
- if oper == nil || !oper.Class.Capabilities.Has("ban") {
|
|
1371
|
+ if !oper.HasRoleCapab("ban") {
|
1368
|
1372
|
rb.Add(nil, server.name, ERR_NOPRIVS, details.nick, msg.Command, client.t("Insufficient oper privs"))
|
1369
|
1373
|
return false
|
1370
|
1374
|
}
|
|
@@ -1737,6 +1741,12 @@ func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
|
1737
|
1741
|
return false
|
1738
|
1742
|
}
|
1739
|
1743
|
|
|
1744
|
+ if msg.Command == "SAMODE" {
|
|
1745
|
+ message := fmt.Sprintf("Operator %s ran SAMODE %s", client.Oper().Name, strings.Join(msg.Params, " "))
|
|
1746
|
+ server.snomasks.Send(sno.LocalOpers, message)
|
|
1747
|
+ server.logger.Info("opers", message)
|
|
1748
|
+ }
|
|
1749
|
+
|
1740
|
1750
|
// applied mode changes
|
1741
|
1751
|
applied := make(modes.ModeChanges, 0)
|
1742
|
1752
|
|
|
@@ -2307,6 +2317,7 @@ func applyOper(client *Client, oper *Oper, rb *ResponseBuffer) {
|
2307
|
2317
|
copy(modeChanges[1:], oper.Modes)
|
2308
|
2318
|
applied := ApplyUserModeChanges(client, modeChanges, true, oper)
|
2309
|
2319
|
|
|
2320
|
+ client.server.logger.Info("opers", details.nick, "opered up as", oper.Name)
|
2310
|
2321
|
client.server.snomasks.Send(sno.LocalOpers, fmt.Sprintf(ircfmt.Unescape("Client opered up $c[grey][$r%s$c[grey], $r%s$c[grey]]"), newDetails.nickMask, oper.Name))
|
2311
|
2322
|
|
2312
|
2323
|
rb.Broadcast(nil, client.server.name, RPL_YOUREOPER, details.nick, client.t("You are now an IRC operator"))
|
|
@@ -2814,7 +2825,7 @@ func topicHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
|
2814
|
2825
|
func unDLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
|
2815
|
2826
|
// check oper permissions
|
2816
|
2827
|
oper := client.Oper()
|
2817
|
|
- if oper == nil || !oper.Class.Capabilities.Has("ban") {
|
|
2828
|
+ if !oper.HasRoleCapab("ban") {
|
2818
|
2829
|
rb.Add(nil, server.name, ERR_NOPRIVS, client.nick, msg.Command, client.t("Insufficient oper privs"))
|
2819
|
2830
|
return false
|
2820
|
2831
|
}
|
|
@@ -2853,7 +2864,7 @@ func unKLineHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *R
|
2853
|
2864
|
details := client.Details()
|
2854
|
2865
|
// check oper permissions
|
2855
|
2866
|
oper := client.Oper()
|
2856
|
|
- if oper == nil || !oper.Class.Capabilities.Has("ban") {
|
|
2867
|
+ if !oper.HasRoleCapab("ban") {
|
2857
|
2868
|
rb.Add(nil, server.name, ERR_NOPRIVS, details.nick, msg.Command, client.t("Insufficient oper privs"))
|
2858
|
2869
|
return false
|
2859
|
2870
|
}
|