Changeset 568 in code for trunk/user.go


Ignore:
Timestamp:
Jun 25, 2021, 6:33:13 PM (4 years ago)
Author:
contact
Message:

Add per-user realname setting

This allows users to set a default realname used if the per-network
realname isn't set.

A new "user update" command is introduced and can be extended to edit
other user properties and other users in the future.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/user.go

    r563 r568  
    764764        }
    765765
     766        // If the realname is reset to the default, just wipe the per-network
     767        // setting
     768        if record.Realname == u.Realname {
     769                record.Realname = ""
     770        }
     771
    766772        if err := u.checkNetwork(record); err != nil {
    767773                return nil, err
     
    856862}
    857863
     864func (u *user) updateRealname(realname string) error {
     865        u.User.Realname = realname
     866        if err := u.srv.db.StoreUser(&u.User); err != nil {
     867                return fmt.Errorf("failed to update user %q: %v", u.Username, err)
     868        }
     869
     870        // Re-connect to networks which use the default realname
     871        var needUpdate []Network
     872        u.forEachNetwork(func(net *network) {
     873                if net.Realname == "" {
     874                        needUpdate = append(needUpdate, net.Network)
     875                }
     876        })
     877
     878        var netErr error
     879        for _, net := range needUpdate {
     880                if _, err := u.updateNetwork(&net); err != nil {
     881                        netErr = err
     882                }
     883        }
     884
     885        return netErr
     886}
     887
    858888func (u *user) stop() {
    859889        u.events <- eventStop{}
Note: See TracChangeset for help on using the changeset viewer.