Save settings on user registration

This commit is contained in:
nemunaire 2020-12-18 23:30:58 +01:00
parent b357835ed8
commit f004899f2f
2 changed files with 38 additions and 16 deletions

View File

@ -67,9 +67,11 @@ func init() {
} }
type UploadedUser struct { type UploadedUser struct {
Kind string Kind string
Email string Email string
Password string Password string
Language string `json:"lang,omitempty"`
Newsletter bool `json:"wantReceiveUpdate,omitempty"`
} }
func genUsername(user *happydns.User) (toName string) { func genUsername(user *happydns.User) (toName string) {
@ -163,18 +165,24 @@ func registerUser(opts *config.Options, p httprouter.Params, body io.Reader) Res
return APIErrorResponse{ return APIErrorResponse{
err: err, err: err,
} }
} else if err := storage.MainStore.CreateUser(user); err != nil {
return APIErrorResponse{
err: err,
}
} else if SendValidationLink(opts, user); err != nil {
return APIErrorResponse{
err: err,
}
} else { } else {
log.Printf("New user registerd: %s", user.Email) user.Settings = *happydns.DefaultUserSettings()
return APIResponse{ user.Settings.Language = uu.Language
response: user, user.Settings.Newsletter = uu.Newsletter
if err := storage.MainStore.CreateUser(user); err != nil {
return APIErrorResponse{
err: err,
}
} else if SendValidationLink(opts, user); err != nil {
return APIErrorResponse{
err: err,
}
} else {
log.Printf("New user registerd: %s", user.Email)
return APIResponse{
response: user,
}
} }
} }
} }

View File

@ -35,6 +35,20 @@ import ()
// UserSettings represents the settings for an account. // UserSettings represents the settings for an account.
type UserSettings struct { type UserSettings struct {
Language string `json:"language,omitempty"` // Language saves the locale defined by the user.
FieldHint int `json:"fieldhint"` Language string `json:"language,omitempty"`
// Newsletter indicates wether the user wants to receive the newsletter or not.
Newsletter bool `json:"newsletter,omitempty"`
// FieldHint stores the way form hints are displayed.
FieldHint int `json:"fieldhint"`
}
func DefaultUserSettings() *UserSettings {
return &UserSettings{
Language: "en",
Newsletter: false,
FieldHint: 2,
}
} }