Sfoglia il codice sorgente

Fix regression: the entire hstore field is replaced when updating settings

Frédéric Guillot 5 anni fa
parent
commit
f52f00abcf
2 ha cambiato i file con 2 aggiunte e 2 eliminazioni
  1. 1 1
      oauth2/profile.go
  2. 1 1
      storage/user.go

+ 1 - 1
oauth2/profile.go

@@ -16,5 +16,5 @@ type Profile struct {
 }
 
 func (p Profile) String() string {
-	return fmt.Sprintf(`ID=%s ; Username=%s`, p.ID, p.Username)
+	return fmt.Sprintf(`Key=%s ; ID=%s ; Username=%s`, p.Key, p.ID, p.Username)
 }

+ 1 - 1
storage/user.go

@@ -88,7 +88,7 @@ func (s *Storage) CreateUser(user *model.User) (err error) {
 
 // UpdateExtraField updates an extra field of the given user.
 func (s *Storage) UpdateExtraField(userID int64, field, value string) error {
-	query := fmt.Sprintf(`UPDATE users SET extra = hstore('%s', $1) WHERE id=$2`, field)
+	query := fmt.Sprintf(`UPDATE users SET extra = extra || hstore('%s', $1) WHERE id=$2`, field)
 	_, err := s.db.Exec(query, value, userID)
 	if err != nil {
 		return fmt.Errorf(`store: unable to update user extra field: %v`, err)