straightened out the "account creation" workflow

This commit is contained in:
2025-10-08 16:36:23 -06:00
parent 05dc2aa448
commit 60b0ec8a5d
10 changed files with 54 additions and 38 deletions
+1 -1
View File
@@ -130,7 +130,7 @@ func (ci *ContactInfo) Save() (bool, error) {
addr2, locality, region, pcode, country, phone, fax, mobile, email, pvt_addr, pvt_phone, pvt_fax,
pvt_email, owner_uid, owner_commid, photo_url, url, lastupdate)
VALUES (:given_name, :family_name, :middle_init, :prefix, :suffix, :company, :addr1, :addr2, :locality,
:region:, :pcode, :country, :phone, :fax, :mobile, :email, :pvt_addr, :pvt_phone, :pvt_fax, :pvt_email,
:region, :pcode, :country, :phone, :fax, :mobile, :email, :pvt_addr, :pvt_phone, :pvt_fax, :pvt_email,
:owner_uid, :owner_commid, :photo_url, :url, NOW())`, ci)
if err != nil {
return false, err
+4 -20
View File
@@ -19,7 +19,7 @@ type Sidebox struct {
// copySideboxes copies sideboxes from one user to another.
func copySideboxes(toUid int32, fromUid int32) error {
sbox := make([]Sidebox, 0, 3)
err := amdb.Select(sbox, "SELECT * from sideboxes WHERE uid = ?", fromUid)
err := amdb.Select(&sbox, "SELECT * from sideboxes WHERE uid = ?", fromUid)
if err == nil {
for _, sb := range sbox {
_, err := amdb.Exec("INSERT INTO sideboxes (uid, boxid, sequence, param) VALUES (?, ?, ?, ?)", toUid, sb.Boxid, sb.Sequence, sb.Param)
@@ -39,23 +39,7 @@ func copySideboxes(toUid int32, fromUid int32) error {
* Standard Go error status
*/
func AmGetSideboxes(uid int32) ([]*Sidebox, error) {
stmt, err := amdb.Preparex("SELECT * FROM sideboxes WHERE uid = ? ORDER BY SEQUENCE")
if err == nil {
defer stmt.Close()
rows, err := stmt.Queryx(uid)
if err == nil {
defer rows.Close()
sboxes := make([]*Sidebox, 0, 3)
for i := 0; rows.Next(); i++ {
box := Sidebox{}
rows.StructScan(&box)
sboxes = append(sboxes, &box)
}
if rows.Err() == nil {
return sboxes, nil
}
return nil, rows.Err()
}
}
return nil, err
sboxes := make([]*Sidebox, 0, 3)
err := amdb.Select(&sboxes, "SELECT * FROM sideboxes WHERE uid = ? ORDER BY SEQUENCE", uid)
return sboxes, err
}
+13 -2
View File
@@ -120,6 +120,17 @@ func (u *User) ContactInfo() (*ContactInfo, error) {
return AmGetContactInfo(u.ContactID)
}
// SetContactID sets the contact ID of a user.
func (u *User) SetContactID(cid int32) error {
u.Mutex.Lock()
defer u.Mutex.Unlock()
if _, err := amdb.Exec("UPDATE users SET contactid = ? WHERE uid = ?", cid, u.Uid); err != nil {
return err
}
u.ContactID = cid
return nil
}
/* NewAuthToken generates and returns a new authentication token for the user.
* Returns:
* Authentication token value
@@ -495,12 +506,12 @@ func AmCreateNewUser(username string, password string, reminder string, dob *tim
// add user properties
props := make([]UserProperties, 0)
anon, _ := getAnonUserID()
err = amdb.Select(props, "SELECT * FROM propuser WHERE uid = ?", anon)
err = amdb.Select(&props, "SELECT * FROM propuser WHERE uid = ?", anon)
if err != nil {
return nil, err
}
for _, p := range props {
_, err := amdb.Exec("INSTERT INTO propuser (uid, ndx, data) VALUES (?, ?, ?)", user.Uid, p.Index, p.Data)
_, err := amdb.Exec("INSERT INTO propuser (uid, ndx, data) VALUES (?, ?, ?)", user.Uid, p.Index, p.Data)
if err != nil {
return nil, err
}