Changeset 568 in code for trunk/db_sqlite.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/db_sqlite.go

    r542 r568  
    1717        username VARCHAR(255) NOT NULL UNIQUE,
    1818        password VARCHAR(255),
    19         admin INTEGER NOT NULL DEFAULT 0
     19        admin INTEGER NOT NULL DEFAULT 0,
     20        realname VARCHAR(255)
    2021);
    2122
     
    134135        "ALTER TABLE Channel ADD COLUMN detached_internal_msgid VARCHAR(255)",
    135136        "ALTER TABLE Network ADD COLUMN enabled INTEGER NOT NULL DEFAULT 1",
     137        "ALTER TABLE User ADD COLUMN realname VARCHAR(255)",
    136138}
    137139
     
    243245        user := &User{Username: username}
    244246
    245         var password sql.NullString
    246         row := db.db.QueryRow("SELECT id, password, admin FROM User WHERE username = ?", username)
    247         if err := row.Scan(&user.ID, &password, &user.Admin); err != nil {
     247        var password, realname sql.NullString
     248        row := db.db.QueryRow("SELECT id, password, admin, realname FROM User WHERE username = ?", username)
     249        if err := row.Scan(&user.ID, &password, &user.Admin, &realname); err != nil {
    248250                return nil, err
    249251        }
    250252        user.Password = password.String
     253        user.Realname = realname.String
    251254        return user, nil
    252255}
     
    257260
    258261        password := toNullString(user.Password)
     262        realname := toNullString(user.Realname)
    259263
    260264        var err error
    261265        if user.ID != 0 {
    262                 _, err = db.db.Exec("UPDATE User SET password = ?, admin = ? WHERE username = ?",
    263                         password, user.Admin, user.Username)
     266                _, err = db.db.Exec("UPDATE User SET password = ?, admin = ?, realname = ? WHERE username = ?",
     267                        password, user.Admin, realname, user.Username)
    264268        } else {
    265269                var res sql.Result
    266                 res, err = db.db.Exec("INSERT INTO User(username, password, admin) VALUES (?, ?, ?)",
    267                         user.Username, password, user.Admin)
     270                res, err = db.db.Exec("INSERT INTO User(username, password, admin, realname) VALUES (?, ?, ?, ?)",
     271                        user.Username, password, user.Admin, realname)
    268272                if err != nil {
    269273                        return err
Note: See TracChangeset for help on using the changeset viewer.