correctly save user properties during ModifyUser call. (#395)

fixes #351

because RequestPasswordReset does it's own db query/save,
call it at the end, after all properties have already been saved.
This commit is contained in:
Victor Vrantchan 2016-11-03 12:50:32 -04:00 committed by GitHub
parent 9c476a39ff
commit b518447b31

View file

@ -71,15 +71,6 @@ func (svc service) ModifyUser(ctx context.Context, userID uint, p kolide.UserPay
user.GravatarURL = *p.GravatarURL
}
if p.AdminForcedPasswordReset != nil {
if *p.AdminForcedPasswordReset {
err = svc.RequestPasswordReset(ctx, user.Email)
if err != nil {
return nil, err
}
}
}
if p.Password != nil {
err := user.SetPassword(
*p.Password,
@ -97,8 +88,16 @@ func (svc service) ModifyUser(ctx context.Context, userID uint, p kolide.UserPay
return nil, err
}
return user, nil
// https://github.com/kolide/kolide-ose/issues/351
// Calling this action last, because svc.RequestPasswordReset saves the
// user separately and we don't want to override the value set there
if p.AdminForcedPasswordReset != nil && *p.AdminForcedPasswordReset {
err = svc.RequestPasswordReset(ctx, user.Email)
if err != nil {
return nil, err
}
}
return svc.User(ctx, userID)
}
func (svc service) User(ctx context.Context, id uint) (*kolide.User, error) {