From 7c6fd2b51e9cf0bb24d4ec4fd4089c9480941105 Mon Sep 17 00:00:00 2001 From: Fabi <38692350+fgerschwiler@users.noreply.github.com> Date: Fri, 20 Nov 2020 09:00:49 +0100 Subject: [PATCH] fix: Externallogin on existing session (#990) * fix: existing session with external login * fix: existing session with external login * fix: return in login --- .../auth/repository/eventsourcing/handler/user_session.go | 4 +++- internal/ui/login/handler/external_login_handler.go | 1 + internal/user/repository/view/model/user_session.go | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) 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 = "" } }