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 {
Kind string
Email string
Password string
Kind string
Email string
Password string
Language string `json:"lang,omitempty"`
Newsletter bool `json:"wantReceiveUpdate,omitempty"`
}
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{
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 {
log.Printf("New user registerd: %s", user.Email)
return APIResponse{
response: user,
user.Settings = *happydns.DefaultUserSettings()
user.Settings.Language = uu.Language
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.
type UserSettings struct {
Language string `json:"language,omitempty"`
FieldHint int `json:"fieldhint"`
// Language saves the locale defined by the user.
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,
}
}