mirror of
https://github.com/mumble-voip/grumble.git
synced 2025-12-19 21:59:59 -08:00
Make it possible to customize the super user name
This commit is contained in:
parent
dd4cf8748f
commit
c876ee6273
3 changed files with 24 additions and 12 deletions
|
|
@ -141,9 +141,9 @@ func (client *Client) UserId() int {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ShownName gets the client's shown name.
|
// ShownName gets the client's shown name.
|
||||||
func (client *Client) ShownName() string {
|
func (client *Client) ShownName(suName string) string {
|
||||||
if client.IsSuperUser() {
|
if client.IsSuperUser() {
|
||||||
return "SuperUser"
|
return suName
|
||||||
}
|
}
|
||||||
if client.IsRegistered() {
|
if client.IsRegistered() {
|
||||||
return client.user.Name
|
return client.user.Name
|
||||||
|
|
|
||||||
|
|
@ -519,7 +519,7 @@ func (server *Server) handleUserRemoveMessage(client *Client, msg *Message) {
|
||||||
if userremove.Reason != nil {
|
if userremove.Reason != nil {
|
||||||
ban.Reason = *userremove.Reason
|
ban.Reason = *userremove.Reason
|
||||||
}
|
}
|
||||||
ban.Username = removeClient.ShownName()
|
ban.Username = removeClient.ShownName(server.GetSuperUserName())
|
||||||
ban.CertHash = removeClient.CertHash()
|
ban.CertHash = removeClient.CertHash()
|
||||||
ban.Start = time.Now().Unix()
|
ban.Start = time.Now().Unix()
|
||||||
ban.Duration = 0
|
ban.Duration = 0
|
||||||
|
|
@ -537,9 +537,9 @@ func (server *Server) handleUserRemoveMessage(client *Client, msg *Message) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if isBan {
|
if isBan {
|
||||||
client.Printf("Kick-banned %v (%v)", removeClient.ShownName(), removeClient.Session())
|
client.Printf("Kick-banned %v (%v)", removeClient.ShownName(server.GetSuperUserName()), removeClient.Session())
|
||||||
} else {
|
} else {
|
||||||
client.Printf("Kicked %v (%v)", removeClient.ShownName(), removeClient.Session())
|
client.Printf("Kicked %v (%v)", removeClient.ShownName(server.GetSuperUserName()), removeClient.Session())
|
||||||
}
|
}
|
||||||
|
|
||||||
removeClient.ForceDisconnect()
|
removeClient.ForceDisconnect()
|
||||||
|
|
@ -784,9 +784,9 @@ func (server *Server) handleUserStateMessage(client *Client, msg *Message) {
|
||||||
txtmsg := &mumbleproto.TextMessage{}
|
txtmsg := &mumbleproto.TextMessage{}
|
||||||
txtmsg.TreeId = append(txtmsg.TreeId, uint32(0))
|
txtmsg.TreeId = append(txtmsg.TreeId, uint32(0))
|
||||||
if target.Recording {
|
if target.Recording {
|
||||||
txtmsg.Message = proto.String(fmt.Sprintf("User '%s' started recording", target.ShownName()))
|
txtmsg.Message = proto.String(fmt.Sprintf("User '%s' started recording", target.ShownName(server.GetSuperUserName())))
|
||||||
} else {
|
} else {
|
||||||
txtmsg.Message = proto.String(fmt.Sprintf("User '%s' stopped recording", target.ShownName()))
|
txtmsg.Message = proto.String(fmt.Sprintf("User '%s' stopped recording", target.ShownName(server.GetSuperUserName())))
|
||||||
}
|
}
|
||||||
|
|
||||||
server.broadcastProtoMessageWithPredicate(txtmsg, func(client *Client) bool {
|
server.broadcastProtoMessageWithPredicate(txtmsg, func(client *Client) bool {
|
||||||
|
|
|
||||||
|
|
@ -127,12 +127,13 @@ type Server struct {
|
||||||
|
|
||||||
type clientLogForwarder struct {
|
type clientLogForwarder struct {
|
||||||
client *Client
|
client *Client
|
||||||
|
server *Server
|
||||||
logger *log.Logger
|
logger *log.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
func (lf clientLogForwarder) Write(incoming []byte) (int, error) {
|
func (lf clientLogForwarder) Write(incoming []byte) (int, error) {
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
buf.WriteString(fmt.Sprintf("<%v:%v(%v)> ", lf.client.Session(), lf.client.ShownName(), lf.client.UserId()))
|
buf.WriteString(fmt.Sprintf("<%v:%v(%v)> ", lf.client.Session(), lf.client.ShownName(lf.server.GetSuperUserName()), lf.client.UserId()))
|
||||||
buf.Write(incoming)
|
buf.Write(incoming)
|
||||||
lf.logger.Output(3, buf.String())
|
lf.logger.Output(3, buf.String())
|
||||||
return len(incoming), nil
|
return len(incoming), nil
|
||||||
|
|
@ -162,6 +163,17 @@ func NewServer(id int64) (s *Server, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (server *Server) GetSuperUserName() string {
|
||||||
|
return server.Users[0].Name
|
||||||
|
}
|
||||||
|
|
||||||
|
func (server *Server) SetSuperUserName(n string) {
|
||||||
|
oldName := server.Users[0].Name
|
||||||
|
server.Users[0].Name = n
|
||||||
|
delete(server.UserNameMap, oldName)
|
||||||
|
server.UserNameMap[n] = server.Users[0]
|
||||||
|
}
|
||||||
|
|
||||||
// Debugf implements debug-level printing for Servers.
|
// Debugf implements debug-level printing for Servers.
|
||||||
func (server *Server) Debugf(format string, v ...interface{}) {
|
func (server *Server) Debugf(format string, v ...interface{}) {
|
||||||
server.Printf(format, v...)
|
server.Printf(format, v...)
|
||||||
|
|
@ -260,7 +272,7 @@ func (server *Server) handleIncomingClient(conn net.Conn) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
client.lf = &clientLogForwarder{client, server.Logger}
|
client.lf = &clientLogForwarder{client, server, server.Logger}
|
||||||
client.Logger = log.New(client.lf, "", 0)
|
client.Logger = log.New(client.lf, "", 0)
|
||||||
|
|
||||||
client.session = server.pool.Get()
|
client.session = server.pool.Get()
|
||||||
|
|
@ -508,7 +520,7 @@ func (server *Server) handleAuthenticate(client *Client, msg *Message) {
|
||||||
|
|
||||||
client.Username = *auth.Username
|
client.Username = *auth.Username
|
||||||
|
|
||||||
if client.Username == "SuperUser" {
|
if client.Username == server.GetSuperUserName() {
|
||||||
if auth.Password == nil {
|
if auth.Password == nil {
|
||||||
client.RejectAuth(mumbleproto.Reject_WrongUserPW, "")
|
client.RejectAuth(mumbleproto.Reject_WrongUserPW, "")
|
||||||
return
|
return
|
||||||
|
|
@ -652,7 +664,7 @@ func (server *Server) finishAuthenticate(client *Client) {
|
||||||
|
|
||||||
userstate := &mumbleproto.UserState{
|
userstate := &mumbleproto.UserState{
|
||||||
Session: proto.Uint32(client.Session()),
|
Session: proto.Uint32(client.Session()),
|
||||||
Name: proto.String(client.ShownName()),
|
Name: proto.String(client.ShownName(server.GetSuperUserName())),
|
||||||
ChannelId: proto.Uint32(uint32(channel.Id)),
|
ChannelId: proto.Uint32(uint32(channel.Id)),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -836,7 +848,7 @@ func (server *Server) sendUserList(client *Client) {
|
||||||
|
|
||||||
userstate := &mumbleproto.UserState{
|
userstate := &mumbleproto.UserState{
|
||||||
Session: proto.Uint32(connectedClient.Session()),
|
Session: proto.Uint32(connectedClient.Session()),
|
||||||
Name: proto.String(connectedClient.ShownName()),
|
Name: proto.String(connectedClient.ShownName(server.GetSuperUserName())),
|
||||||
ChannelId: proto.Uint32(uint32(connectedClient.Channel.Id)),
|
ChannelId: proto.Uint32(uint32(connectedClient.Channel.Id)),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue