diff --git a/uffd/session/views.py b/uffd/session/views.py
index ca88eb29a84591115bd9917198e1c9765a160413..f7f0550f67576de0e0f08a7dfea357bc040cbfad 100644
--- a/uffd/session/views.py
+++ b/uffd/session/views.py
@@ -38,7 +38,9 @@ def login():
 def get_current_user():
 	if not session.get('user_uid'):
 		return None
-	return User.from_ldap_dn(uid_to_dn(session['user_uid']))
+	if not hasattr(request, 'current_user'):
+		request.current_user = User.from_ldap_dn(uid_to_dn(session['user_uid']))
+	return request.current_user
 
 def is_valid_session():
 	user = get_current_user()