From f96f02b2e370820cde9a7daaf044b5b79f24bcc1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Oct 11 2018 08:13:20 +0000 Subject: cache oidc user data makes sure that data from OIDC provider are cached and not asked for on every request, thus making server responses much faster for users logged in Signed-off-by: Karsten Hopp --- diff --git a/pagure/ui/oidc_login.py b/pagure/ui/oidc_login.py index f746b04..b5d33eb 100644 --- a/pagure/ui/oidc_login.py +++ b/pagure/ui/oidc_login.py @@ -30,7 +30,9 @@ _log = logging.getLogger(__name__) def fas_user_from_oidc(): - if oidc.user_loggedin and "oidc_logintime" in flask.session: + if "oidc_cached_userdata" in flask.session: + flask.g.fas_user = munch.Munch(**flask.session["oidc_cached_userdata"]) + elif oidc.user_loggedin and "oidc_logintime" in flask.session: email_key, fulln_key, usern_key, ssh_key, groups_key = [ pagure_config["OIDC_PAGURE_EMAIL"], pagure_config["OIDC_PAGURE_FULLNAME"], @@ -56,6 +58,7 @@ def fas_user_from_oidc(): groups=info.get(groups_key, []), login_time=flask.session["oidc_logintime"], ) + flask.session["oidc_cached_userdata"] = dict(flask.g.fas_user) def set_user(): @@ -144,4 +147,5 @@ def set_user(): def oidc_logout(): flask.g.fas_user = None del flask.session["oidc_logintime"] + del flask.session["oidc_cached_userdata"] oidc.logout()