mirror of
https://github.com/jech/galene.git
synced 2024-11-10 02:35:58 +01:00
Implement WallOps to send a warning to all operators.
This commit is contained in:
parent
65357759d0
commit
d43a2b0104
2 changed files with 32 additions and 0 deletions
|
@ -480,6 +480,24 @@ func (g *Group) Shutdown(message string) {
|
|||
})
|
||||
}
|
||||
|
||||
type warner interface {
|
||||
Warn(oponly bool, message string) error
|
||||
}
|
||||
|
||||
func (g *Group) WallOps(message string) {
|
||||
clients := g.GetClients(nil)
|
||||
for _, c := range clients {
|
||||
w, ok := c.(warner)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
err := w.Warn(true, message)
|
||||
if err != nil {
|
||||
log.Printf("WallOps: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func FromJSTime(tm int64) time.Time {
|
||||
if tm == 0 {
|
||||
return time.Time{}
|
||||
|
|
|
@ -1393,6 +1393,20 @@ func clientWriter(conn *websocket.Conn, ch <-chan interface{}, done chan<- struc
|
|||
}
|
||||
}
|
||||
|
||||
func (c *webClient) Warn(oponly bool, message string) error {
|
||||
if oponly && !c.permissions.Op {
|
||||
return nil
|
||||
}
|
||||
|
||||
return c.write(clientMessage{
|
||||
Type: "usermessage",
|
||||
Kind: "warning",
|
||||
Dest: c.id,
|
||||
Privileged: true,
|
||||
Value: &message,
|
||||
})
|
||||
}
|
||||
|
||||
var ErrClientDead = errors.New("client is dead")
|
||||
|
||||
func (c *webClient) action(m interface{}) error {
|
||||
|
|
Loading…
Reference in a new issue