Require room admin for set-relay
This commit is contained in:
19
commands.go
19
commands.go
@@ -353,6 +353,8 @@ func fnRejoinSpace(ce *WrappedCommandEvent) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var roomModerator = event.Type{Type: "fi.mau.discord.admin", Class: event.StateEventType}
|
||||||
|
|
||||||
var cmdSetRelay = &commands.FullHandler{
|
var cmdSetRelay = &commands.FullHandler{
|
||||||
Func: wrapCommand(fnSetRelay),
|
Func: wrapCommand(fnSetRelay),
|
||||||
Name: "set-relay",
|
Name: "set-relay",
|
||||||
@@ -361,7 +363,8 @@ var cmdSetRelay = &commands.FullHandler{
|
|||||||
Description: "Create or set a relay webhook for a portal",
|
Description: "Create or set a relay webhook for a portal",
|
||||||
Args: "[room ID] <--url URL> OR <--create [name]>",
|
Args: "[room ID] <--url URL> OR <--create [name]>",
|
||||||
},
|
},
|
||||||
RequiresLogin: true,
|
RequiresLogin: true,
|
||||||
|
RequiresEventLevel: roomModerator,
|
||||||
}
|
}
|
||||||
|
|
||||||
const webhookURLFormat = "https://discord.com/api/webhooks/%d/%s"
|
const webhookURLFormat = "https://discord.com/api/webhooks/%d/%s"
|
||||||
@@ -376,12 +379,24 @@ func fnSetRelay(ce *WrappedCommandEvent) {
|
|||||||
ce.Reply("Portal with room ID %s not found", ce.Args[0])
|
ce.Reply("Portal with room ID %s not found", ce.Args[0])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
levels, err := portal.MainIntent().PowerLevels(ce.RoomID)
|
||||||
|
if err != nil {
|
||||||
|
ce.ZLog.Warn().Err(err).Msg("Failed to check room power levels")
|
||||||
|
ce.Reply("Failed to get room power levels to see if you're allowed to use that command")
|
||||||
|
return
|
||||||
|
} else if levels.GetUserLevel(ce.User.GetMXID()) < levels.GetEventLevel(roomModerator) {
|
||||||
|
ce.Reply("You don't have admin rights in that room")
|
||||||
|
return
|
||||||
|
}
|
||||||
ce.Args = ce.Args[1:]
|
ce.Args = ce.Args[1:]
|
||||||
} else if portal == nil {
|
} else if portal == nil {
|
||||||
ce.Reply("You must either run the command in a portal, or specify an internal room ID as the first parameter")
|
ce.Reply("You must either run the command in a portal, or specify an internal room ID as the first parameter")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if len(ce.Args) == 0 {
|
if ce.Portal.GuildID == "" {
|
||||||
|
ce.Reply("Only guild channels can have relays")
|
||||||
|
return
|
||||||
|
} else if len(ce.Args) == 0 {
|
||||||
ce.Reply(selectRelayHelp)
|
ce.Reply(selectRelayHelp)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -15,7 +15,7 @@ require (
|
|||||||
github.com/stretchr/testify v1.8.1
|
github.com/stretchr/testify v1.8.1
|
||||||
github.com/yuin/goldmark v1.5.4
|
github.com/yuin/goldmark v1.5.4
|
||||||
maunium.net/go/maulogger/v2 v2.4.1
|
maunium.net/go/maulogger/v2 v2.4.1
|
||||||
maunium.net/go/mautrix v0.15.0-beta.1.0.20230227211640-c8b3566fb7ba
|
maunium.net/go/mautrix v0.15.0-beta.1.0.20230301180623-8c998379fb12
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -82,5 +82,5 @@ maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M=
|
|||||||
maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA=
|
maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA=
|
||||||
maunium.net/go/maulogger/v2 v2.4.1 h1:N7zSdd0mZkB2m2JtFUsiGTQQAdP0YeFWT7YMc80yAL8=
|
maunium.net/go/maulogger/v2 v2.4.1 h1:N7zSdd0mZkB2m2JtFUsiGTQQAdP0YeFWT7YMc80yAL8=
|
||||||
maunium.net/go/maulogger/v2 v2.4.1/go.mod h1:omPuYwYBILeVQobz8uO3XC8DIRuEb5rXYlQSuqrbCho=
|
maunium.net/go/maulogger/v2 v2.4.1/go.mod h1:omPuYwYBILeVQobz8uO3XC8DIRuEb5rXYlQSuqrbCho=
|
||||||
maunium.net/go/mautrix v0.15.0-beta.1.0.20230227211640-c8b3566fb7ba h1:OS+zjLTyeqxzMcgnbBbXlZSr0B2yfalCo2lNhC2wP5A=
|
maunium.net/go/mautrix v0.15.0-beta.1.0.20230301180623-8c998379fb12 h1:QtjG/0TJIC7DnkksGQsElLXkFG2LPhgB9XksYXdbZbE=
|
||||||
maunium.net/go/mautrix v0.15.0-beta.1.0.20230227211640-c8b3566fb7ba/go.mod h1:AE3TCX9q4W7fYfrL/1RsuOell9rTUBO27XUULuwArH4=
|
maunium.net/go/mautrix v0.15.0-beta.1.0.20230301180623-8c998379fb12/go.mod h1:AE3TCX9q4W7fYfrL/1RsuOell9rTUBO27XUULuwArH4=
|
||||||
|
|||||||
Reference in New Issue
Block a user