mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-12 11:04:25 +00:00
fix: check linked users before postAuthentication action (#5980)
* fix: check linked users before postAuthentication action * fix: apply suggestions from code review Co-authored-by: Silvan <silvan.reusser@gmail.com> --------- Co-authored-by: Silvan <silvan.reusser@gmail.com>
This commit is contained in:
parent
6be41ea257
commit
0b1738dc5d
@ -286,17 +286,19 @@ func (l *Login) handleExternalUserAuthenticated(
|
|||||||
callback func(w http.ResponseWriter, r *http.Request, authReq *domain.AuthRequest),
|
callback func(w http.ResponseWriter, r *http.Request, authReq *domain.AuthRequest),
|
||||||
) {
|
) {
|
||||||
externalUser := mapIDPUserToExternalUser(user, provider.ID)
|
externalUser := mapIDPUserToExternalUser(user, provider.ID)
|
||||||
externalUser, externalUserChange, err := l.runPostExternalAuthenticationActions(externalUser, tokens(session), authReq, r, user, nil)
|
// check and fill in local linked user
|
||||||
|
externalErr := l.authRepo.CheckExternalUserLogin(setContext(r.Context(), ""), authReq.ID, authReq.AgentID, externalUser, domain.BrowserInfoFromRequest(r))
|
||||||
|
if !errors.IsNotFound(externalErr) {
|
||||||
|
l.renderError(w, r, authReq, externalErr)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
externalUser, externalUserChange, err := l.runPostExternalAuthenticationActions(externalUser, tokens(session), authReq, r, user, externalErr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.renderError(w, r, authReq, err)
|
l.renderError(w, r, authReq, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
err = l.authRepo.CheckExternalUserLogin(setContext(r.Context(), ""), authReq.ID, authReq.AgentID, externalUser, domain.BrowserInfoFromRequest(r))
|
// if action is done and no user linked then link or register
|
||||||
if err != nil {
|
if errors.IsNotFound(externalErr) {
|
||||||
if !errors.IsNotFound(err) {
|
|
||||||
l.renderError(w, r, authReq, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
l.externalUserNotExisting(w, r, authReq, provider, externalUser)
|
l.externalUserNotExisting(w, r, authReq, provider, externalUser)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user