From 4b2a1329f01ce6765cd5b290fb1b37021ca68214 Mon Sep 17 00:00:00 2001 From: kolaente Date: Mon, 16 Nov 2020 20:58:31 +0100 Subject: [PATCH] Cache openid providers --- pkg/routes/api/v1/info.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkg/routes/api/v1/info.go b/pkg/routes/api/v1/info.go index a820fc940..57c52e55f 100644 --- a/pkg/routes/api/v1/info.go +++ b/pkg/routes/api/v1/info.go @@ -19,6 +19,8 @@ package v1 import ( "code.vikunja.io/api/pkg/config" "code.vikunja.io/api/pkg/modules/auth/openid" + "code.vikunja.io/api/pkg/modules/keyvalue" + kerr "code.vikunja.io/api/pkg/modules/keyvalue/error" "code.vikunja.io/api/pkg/modules/migration/todoist" "code.vikunja.io/api/pkg/modules/migration/wunderlist" "code.vikunja.io/api/pkg/version" @@ -95,12 +97,22 @@ func Info(c echo.Context) error { }, } + var providers interface{} var err error - info.AuthInfo.OpenIDConnect.Providers, err = openid.GetAllProviders() + providers, err = keyvalue.Get("openid_providers") + if err != nil && kerr.IsErrValueNotFoundForKey(err) { + providers, err = openid.GetAllProviders() + if err != nil { + return err + } + err = keyvalue.Put("openid_providers", providers) + } if err != nil { return err } + info.AuthInfo.OpenIDConnect.Providers = providers.([]*openid.Provider) + // Migrators if config.MigrationWunderlistEnable.GetBool() { m := &wunderlist.Migration{}