From e94c744477453e66b3ebdce3a0d16bc10c1a8e23 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sun, 9 Mar 2025 09:23:40 +0100 Subject: [PATCH] fix(auth): return ldap as auth provider name when using it --- pkg/routes/api/v1/user_show.go | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/pkg/routes/api/v1/user_show.go b/pkg/routes/api/v1/user_show.go index f5f714b38..93f35a75d 100644 --- a/pkg/routes/api/v1/user_show.go +++ b/pkg/routes/api/v1/user_show.go @@ -85,21 +85,37 @@ func UserShow(c echo.Context) error { IsLocalUser: u.Issuer == user.IssuerLocal, } - providers, err := openid.GetAllProviders() + us.AuthProvider, err = getAuthProviderName(u) if err != nil { return handler.HandleHTTPError(err) } + return c.JSON(http.StatusOK, us) +} + +func getAuthProviderName(u *user.User) (name string, err error) { + if u.Issuer == user.IssuerLocal { + return "local", nil + } + + if u.Issuer == user.IssuerLDAP { + return "ldap", nil + } + + providers, err := openid.GetAllProviders() + if err != nil { + return "", err + } + for _, provider := range providers { issuerURL, err := provider.Issuer() if err != nil { - return handler.HandleHTTPError(err) + return "", err } if issuerURL == u.Issuer { - us.AuthProvider = provider.Name - break + return provider.Name, nil } } - return c.JSON(http.StatusOK, us) + return }