mirror of
https://github.com/jech/galene.git
synced 2024-11-13 20:25:57 +01:00
Restructure group and client management messages.
This commit is contained in:
parent
88d2a96819
commit
675035ab29
2 changed files with 78 additions and 64 deletions
|
@ -1058,7 +1058,8 @@ function handleInput() {
|
|||
return;
|
||||
}
|
||||
send({
|
||||
type: 'clearchat',
|
||||
type: 'groupaction',
|
||||
kind: 'clearchat',
|
||||
});
|
||||
return;
|
||||
case '/lock':
|
||||
|
@ -1068,7 +1069,8 @@ function handleInput() {
|
|||
return;
|
||||
}
|
||||
send({
|
||||
type: cmd.slice(1),
|
||||
type: 'groupaction',
|
||||
kind: cmd.slice(1),
|
||||
});
|
||||
return;
|
||||
case '/record':
|
||||
|
@ -1078,7 +1080,8 @@ function handleInput() {
|
|||
return;
|
||||
}
|
||||
send({
|
||||
type: cmd.slice(1),
|
||||
type: 'groupaction',
|
||||
kind: cmd.slice(1),
|
||||
});
|
||||
return;
|
||||
case '/op':
|
||||
|
@ -1106,7 +1109,8 @@ function handleInput() {
|
|||
return;
|
||||
}
|
||||
send({
|
||||
type: cmd.slice(1),
|
||||
type: 'useraction',
|
||||
kind: cmd.slice(1),
|
||||
id: id,
|
||||
});
|
||||
return;
|
||||
|
|
28
webclient.go
28
webclient.go
|
@ -1006,6 +1006,8 @@ func handleClientMessage(c *webClient, m clientMessage) error {
|
|||
cc.write(m)
|
||||
}
|
||||
}
|
||||
case "groupaction":
|
||||
switch m.Kind {
|
||||
case "clearchat":
|
||||
c.group.clearChatHistory()
|
||||
m := clientMessage{Type: "clearchat"}
|
||||
|
@ -1016,20 +1018,12 @@ func handleClientMessage(c *webClient, m clientMessage) error {
|
|||
cc.write(m)
|
||||
}
|
||||
}
|
||||
case "op", "unop", "present", "unpresent":
|
||||
if !c.permissions.Op {
|
||||
return c.error(userError("not authorised"))
|
||||
}
|
||||
err := setPermissions(c.group, m.Id, m.Type)
|
||||
if err != nil {
|
||||
return c.error(err)
|
||||
}
|
||||
case "lock", "unlock":
|
||||
if !c.permissions.Op {
|
||||
return c.error(userError("not authorised"))
|
||||
}
|
||||
var locked uint32
|
||||
if m.Type == "lock" {
|
||||
if m.Kind == "lock" {
|
||||
locked = 1
|
||||
}
|
||||
atomic.StoreUint32(&c.group.locked, locked)
|
||||
|
@ -1064,6 +1058,19 @@ func handleClientMessage(c *webClient, m clientMessage) error {
|
|||
delClient(disk)
|
||||
}
|
||||
}
|
||||
default:
|
||||
return protocolError("unknown group action")
|
||||
}
|
||||
case "useraction":
|
||||
switch m.Kind {
|
||||
case "op", "unop", "present", "unpresent":
|
||||
if !c.permissions.Op {
|
||||
return c.error(userError("not authorised"))
|
||||
}
|
||||
err := setPermissions(c.group, m.Id, m.Kind)
|
||||
if err != nil {
|
||||
return c.error(err)
|
||||
}
|
||||
case "kick":
|
||||
if !c.permissions.Op {
|
||||
return c.error(userError("not authorised"))
|
||||
|
@ -1072,6 +1079,9 @@ func handleClientMessage(c *webClient, m clientMessage) error {
|
|||
if err != nil {
|
||||
return c.error(err)
|
||||
}
|
||||
default:
|
||||
return protocolError("unknown user action")
|
||||
}
|
||||
case "pong":
|
||||
// nothing
|
||||
case "ping":
|
||||
|
|
Loading…
Reference in a new issue