mirror of
https://github.com/pomerium/pomerium.git
synced 2025-05-29 00:47:17 +02:00
authenticate: always update user record on login (#2719)
* authenticate: always update user record on login * identity: fix user refresh * add test for manager update * fix time
This commit is contained in:
parent
90f2b00bb6
commit
b0f8c055ec
4 changed files with 91 additions and 24 deletions
|
@ -539,23 +539,22 @@ func (a *Authenticate) saveSessionToDataBroker(
|
|||
s.SetRawIDToken(claims.RawIDToken)
|
||||
s.AddClaims(claims.Flatten())
|
||||
|
||||
// if no user exists yet, create a new one
|
||||
currentUser, _ := user.Get(ctx, state.dataBrokerClient, s.GetUserId())
|
||||
if currentUser == nil {
|
||||
mu := manager.User{
|
||||
User: &user.User{
|
||||
Id: s.GetUserId(),
|
||||
},
|
||||
}
|
||||
err := a.provider.Load().UpdateUserInfo(ctx, accessToken, &mu)
|
||||
if err != nil {
|
||||
return fmt.Errorf("authenticate: error retrieving user info: %w", err)
|
||||
}
|
||||
_, err = user.Put(ctx, state.dataBrokerClient, mu.User)
|
||||
if err != nil {
|
||||
return fmt.Errorf("authenticate: error saving user: %w", err)
|
||||
var managerUser manager.User
|
||||
managerUser.User, _ = user.Get(ctx, state.dataBrokerClient, s.GetUserId())
|
||||
if managerUser.User == nil {
|
||||
// if no user exists yet, create a new one
|
||||
managerUser.User = &user.User{
|
||||
Id: s.GetUserId(),
|
||||
}
|
||||
}
|
||||
err := a.provider.Load().UpdateUserInfo(ctx, accessToken, &managerUser)
|
||||
if err != nil {
|
||||
return fmt.Errorf("authenticate: error retrieving user info: %w", err)
|
||||
}
|
||||
_, err = user.Put(ctx, state.dataBrokerClient, managerUser.User)
|
||||
if err != nil {
|
||||
return fmt.Errorf("authenticate: error saving user: %w", err)
|
||||
}
|
||||
|
||||
res, err := session.Put(ctx, state.dataBrokerClient, s)
|
||||
if err != nil {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue