diff --git a/internal/auth/repository/eventsourcing/handler/user_session.go b/internal/auth/repository/eventsourcing/handler/user_session.go index 9554f2d1a..305d5cd04 100644 --- a/internal/auth/repository/eventsourcing/handler/user_session.go +++ b/internal/auth/repository/eventsourcing/handler/user_session.go @@ -76,7 +76,9 @@ func (u *UserSession) Reduce(event *models.Event) (err error) { es_model.HumanMFAOTPRemoved, es_model.HumanProfileChanged, es_model.DomainClaimed, - es_model.UserUserNameChanged: + es_model.UserUserNameChanged, + es_model.HumanExternalIDPRemoved, + es_model.HumanExternalIDPCascadeRemoved: sessions, err := u.view.UserSessionsByUserID(event.AggregateID) if err != nil { return err diff --git a/internal/ui/login/handler/external_login_handler.go b/internal/ui/login/handler/external_login_handler.go index 8f8bd033f..2bb2d0d6e 100644 --- a/internal/ui/login/handler/external_login_handler.go +++ b/internal/ui/login/handler/external_login_handler.go @@ -45,6 +45,7 @@ func (l *Login) handleExternalLoginStep(w http.ResponseWriter, r *http.Request, for _, idp := range authReq.AllowedExternalIDPs { if idp.IDPConfigID == selectedIDPConfigID { l.handleIDP(w, r, authReq, selectedIDPConfigID) + return } } l.renderLogin(w, r, authReq, errors.ThrowInvalidArgument(nil, "VIEW-Fsj7f", "Errors.User.ExternalIDP.NotAllowed")) diff --git a/internal/user/repository/view/model/user_session.go b/internal/user/repository/view/model/user_session.go index 4334d40f0..e2f0f8c5c 100644 --- a/internal/user/repository/view/model/user_session.go +++ b/internal/user/repository/view/model/user_session.go @@ -116,5 +116,8 @@ func (v *UserSessionView) AppendEvent(event *models.Event) { v.SecondFactorVerification = time.Time{} v.ExternalLoginVerification = time.Time{} v.State = int32(req_model.UserSessionStateTerminated) + case es_model.HumanExternalIDPRemoved, es_model.HumanExternalIDPCascadeRemoved: + v.ExternalLoginVerification = time.Time{} + v.SelectedIDPConfigID = "" } }