Merge pull request #50 from rreuvekamp/fix/panic-when-using-auth-command

Disallow using session commands when not logged in
This commit is contained in:
Tulir Asokan 2019-03-15 22:15:42 +02:00 committed by GitHub
commit 3ed2522a10

View File

@ -79,10 +79,18 @@ func (handler *CommandHandler) Handle(roomID types.MatrixRoomID, user *User, mes
switch cmd { switch cmd {
case "login": case "login":
handler.CommandLogin(ce) handler.CommandLogin(ce)
case "logout":
handler.CommandLogout(ce)
case "help": case "help":
handler.CommandHelp(ce) handler.CommandHelp(ce)
case "logout", "sync", "list", "open", "pm":
if ce.User.Conn == nil {
ce.Reply("You are not logged in.")
ce.Reply("Please use the login command to log into WhatsApp.")
return
}
switch cmd {
case "logout":
handler.CommandLogout(ce)
case "sync": case "sync":
handler.CommandSync(ce) handler.CommandSync(ce)
case "list": case "list":
@ -91,6 +99,7 @@ func (handler *CommandHandler) Handle(roomID types.MatrixRoomID, user *User, mes
handler.CommandOpen(ce) handler.CommandOpen(ce)
case "pm": case "pm":
handler.CommandPM(ce) handler.CommandPM(ce)
}
default: default:
ce.Reply("Unknown Command") ce.Reply("Unknown Command")
} }
@ -183,6 +192,7 @@ const cmdListHelp = `list - Get a list of all contacts and groups.`
func (handler *CommandHandler) CommandList(ce *CommandEvent) { func (handler *CommandHandler) CommandList(ce *CommandEvent) {
var contacts strings.Builder var contacts strings.Builder
var groups strings.Builder var groups strings.Builder
for jid, contact := range ce.User.Conn.Store.Contacts { for jid, contact := range ce.User.Conn.Store.Contacts {
if strings.HasSuffix(jid, whatsappExt.NewUserSuffix) { if strings.HasSuffix(jid, whatsappExt.NewUserSuffix) {
_, _ = fmt.Fprintf(&contacts, "* %s / %s - `%s`\n", contact.Name, contact.Notify, contact.Jid[:len(contact.Jid)-len(whatsappExt.NewUserSuffix)]) _, _ = fmt.Fprintf(&contacts, "* %s / %s - `%s`\n", contact.Name, contact.Notify, contact.Jid[:len(contact.Jid)-len(whatsappExt.NewUserSuffix)])
@ -198,6 +208,7 @@ const cmdOpenHelp = `open <_group JID_> - Open a group chat portal.`
func (handler *CommandHandler) CommandOpen(ce *CommandEvent) { func (handler *CommandHandler) CommandOpen(ce *CommandEvent) {
if len(ce.Args) == 0 { if len(ce.Args) == 0 {
ce.Reply("**Usage:** `open <group JID>`") ce.Reply("**Usage:** `open <group JID>`")
return
} }
user := ce.User user := ce.User