zitadel/internal/ui/login/handler/login_success_handler.go
Livio Amstutz 6830de6385
feat: login success page (#1849)
* feat: login success page

* fix: script import on mfa verify
2021-06-10 14:18:07 +02:00

46 lines
1.2 KiB
Go

package handler
import (
"net/http"
"github.com/caos/zitadel/internal/domain"
)
const (
tmplLoginSuccess = "login_success"
)
type loginSuccessData struct {
userData
RedirectURI string `schema:"redirect-uri"`
}
func (l *Login) redirectToLoginSuccess(w http.ResponseWriter, r *http.Request, id string) {
http.Redirect(w, r, l.renderer.pathPrefix+EndpointLoginSuccess+"?authRequestID="+id, http.StatusFound)
}
func (l *Login) handleLoginSuccess(w http.ResponseWriter, r *http.Request) {
authRequest, _ := l.getAuthRequest(r)
if authRequest != nil {
if !(len(authRequest.PossibleSteps) == 1 && authRequest.PossibleSteps[0].Type() == domain.NextStepRedirectToCallback) {
l.renderNextStep(w, r, authRequest)
return
}
}
l.renderSuccessAndCallback(w, r, authRequest, nil)
}
func (l *Login) renderSuccessAndCallback(w http.ResponseWriter, r *http.Request, authReq *domain.AuthRequest, err error) {
var errType, errMessage string
if err != nil {
errMessage = l.getErrorMessage(r, err)
}
data := loginSuccessData{
userData: l.getUserData(r, authReq, "Login Successful", errType, errMessage),
}
if authReq != nil {
data.RedirectURI = l.oidcAuthCallbackURL
}
l.renderer.RenderTemplate(w, r, l.renderer.Templates[tmplLoginSuccess], data, nil)
}