mirror of
https://github.com/ergochat/ergo.git
synced 2025-12-20 02:00:11 -08:00
commit
f1af7a2e2a
1 changed files with 11 additions and 6 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue