mirror of
https://github.com/jech/galene.git
synced 2024-11-26 02:25: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 {
|
func FromJSTime(tm int64) time.Time {
|
||||||
if tm == 0 {
|
if tm == 0 {
|
||||||
return time.Time{}
|
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")
|
var ErrClientDead = errors.New("client is dead")
|
||||||
|
|
||||||
func (c *webClient) action(m interface{}) error {
|
func (c *webClient) action(m interface{}) error {
|
||||||
|
|
Loading…
Reference in a new issue