mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-25 13:29:27 +01:00
commit
f1af7a2e2a
@ -193,12 +193,6 @@ func nsDropHandler(server *Server, client *Client, command, params string, rb *R
|
||||
func nsGhostHandler(server *Server, client *Client, command, params string, rb *ResponseBuffer) {
|
||||
nick, _ := utils.ExtractParam(params)
|
||||
|
||||
account := client.Account()
|
||||
if account == "" || server.accounts.NickToAccount(nick) != account {
|
||||
nsNotice(rb, client.t("You don't own that nick"))
|
||||
return
|
||||
}
|
||||
|
||||
ghost := server.clients.Get(nick)
|
||||
if ghost == nil {
|
||||
nsNotice(rb, client.t("No such nick"))
|
||||
@ -208,6 +202,17 @@ func nsGhostHandler(server *Server, client *Client, command, params string, rb *
|
||||
return
|
||||
}
|
||||
|
||||
authorized := false
|
||||
account := client.Account()
|
||||
if account != "" {
|
||||
// the user must either own the nick, or the target client
|
||||
authorized = (server.accounts.NickToAccount(nick) == account) || (ghost.Account() == account)
|
||||
}
|
||||
if !authorized {
|
||||
nsNotice(rb, client.t("You don't own that nick"))
|
||||
return
|
||||
}
|
||||
|
||||
ghost.Quit(fmt.Sprintf(ghost.t("GHOSTed by %s"), client.Nick()))
|
||||
ghost.destroy(false)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user