From 02ebffd125d6b3faf849faa6a3a2721c7f441767 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Sat, 20 Mar 2021 17:45:11 +0100 Subject: [PATCH] Fix bug with missing roles after password reset --- system/service/auth.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/system/service/auth.go b/system/service/auth.go index cb3bb8b3d..9906ceecc 100644 --- a/system/service/auth.go +++ b/system/service/auth.go @@ -3,7 +3,6 @@ package service import ( "context" "fmt" - rand2 "math/rand" "regexp" "strconv" @@ -677,14 +676,14 @@ func (svc auth) loadFromTokenAndConfirmEmail(ctx context.Context, token, tokenTy aam.setUser(u) ctx = internalAuth.SetIdentityToContext(ctx, u) - if u.EmailConfirmed { - return nil - } - - u.EmailConfirmed = true - u.UpdatedAt = now() - if err = store.UpdateUser(ctx, svc.store, u); err != nil { - return err + if !u.EmailConfirmed { + // User's email is not confirmed but going through password reset flow + // we can confirm it + u.EmailConfirmed = true + u.UpdatedAt = now() + if err = store.UpdateUser(ctx, svc.store, u); err != nil { + return err + } } if err = svc.LoadRoleMemberships(ctx, u); err != nil {