Changeset 379 in code


Ignore:
Timestamp:
Aug 10, 2020, 1:04:01 PM (5 years ago)
Author:
contact
Message:

Add user delete command

References: https://todo.sr.ht/~emersion/soju/17

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/service.go

    r374 r379  
    205205                                        admin:  true,
    206206                                },
     207                                "delete": {
     208                                        usage:  "<username>",
     209                                        desc:   "delete a user",
     210                                        handle: handleUserDelete,
     211                                        admin:  true,
     212                                },
    207213                        },
    208214                        admin: true,
     
    670676        return nil
    671677}
     678
     679func handleUserDelete(dc *downstreamConn, params []string) error {
     680        if len(params) != 1 {
     681                return fmt.Errorf("expected exactly one argument")
     682        }
     683        username := params[0]
     684
     685        u := dc.srv.getUser(username)
     686        if u == nil {
     687                return fmt.Errorf("unknown username %q", username)
     688        }
     689
     690        u.stop()
     691
     692        if err := dc.srv.db.DeleteUser(username); err != nil {
     693                return fmt.Errorf("failed to delete user: %v", err)
     694        }
     695
     696        sendServicePRIVMSG(dc, fmt.Sprintf("deleted user %q", username))
     697        return nil
     698}
Note: See TracChangeset for help on using the changeset viewer.