From 4b6f6291c524648ffaa77683d77b486bb467b7e8 Mon Sep 17 00:00:00 2001
From: Bart Visscher <bartv@thisnet.nl>
Date: Tue, 19 Jun 2012 17:54:19 +0200
Subject: [PATCH] Remember result of OC_User::isLoggedIn, can be very expensive
 to check

---
 lib/user.php | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/user.php b/lib/user.php
index f1903093d6..23b88aa1d0 100644
--- a/lib/user.php
+++ b/lib/user.php
@@ -240,13 +240,17 @@ class OC_User {
 	 * Checks if the user is logged in
 	 */
 	public static function isLoggedIn(){
+		static $is_login_checked = null;
+		if (!is_null($is_login_checked)) {
+			return $is_login_checked;
+		}
 		if( isset($_SESSION['user_id']) AND $_SESSION['user_id']) {
 			OC_App::loadApps(array('authentication'));
 			if (self::userExists($_SESSION['user_id']) ){
-				return true;
+				return $is_login_checked = true;
 			}
 		}
-		return false;
+		return $is_login_checked = false;
 	}
 
 	/**
-- 
GitLab