Implement message permission and shutup command.

This commit is contained in:
Juliusz Chroboczek
2024-05-08 16:24:32 +02:00
parent 2b145317a5
commit 1315084185
9 changed files with 85 additions and 38 deletions
+9 -1
View File
@@ -1349,6 +1349,10 @@ func setPermissions(g *group.Group, id string, perm string) error {
c.permissions = addnew("present", c.permissions)
case "unpresent":
c.permissions = remove("present", c.permissions)
case "shutup":
c.permissions = remove("message", c.permissions)
case "unshutup":
c.permissions = addnew("message", c.permissions)
default:
return group.UserError("unknown permission")
}
@@ -1570,6 +1574,10 @@ func handleClientMessage(c *webClient, m clientMessage) error {
return c.error(group.UserError("join a group first"))
}
if !member("message", c.permissions) {
return c.error(group.UserError("not authorised"))
}
now := time.Now()
if m.Type == "chat" {
@@ -1855,7 +1863,7 @@ func handleClientMessage(c *webClient, m clientMessage) error {
return c.error(group.UserError("join a group first"))
}
switch m.Kind {
case "op", "unop", "present", "unpresent":
case "op", "unop", "present", "unpresent", "shutup", "unshutup":
if !member("op", c.permissions) {
return c.error(group.UserError("not authorised"))
}