From 7e4f50d4e385e1d55b7839146a82dd48cb657c2a Mon Sep 17 00:00:00 2001
From: Bjoern Schiessle <schiessle@owncloud.com>
Date: Fri, 22 Nov 2013 13:55:38 +0100
Subject: [PATCH] add incognito mode, allows to hide my user ID. For example,
 this is useful to access public resources while a user is still logged in

---
 lib/private/user.php | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/private/user.php b/lib/private/user.php
index f15fdf1dbb..5bd3600675 100644
--- a/lib/private/user.php
+++ b/lib/private/user.php
@@ -54,6 +54,9 @@ class OC_User {
 
 	private static $_setupedBackends = array();
 
+	// bool, stores if a user want to access a resource anonymously, e.g if he opens a public link
+	private static $incognitoMode = false;
+
 	/**
 	 * @brief registers backend
 	 * @param string $backend name of the backend
@@ -319,6 +322,15 @@ class OC_User {
 		return false;
 	}
 
+	/**
+	 * @brief set incognito mode, e.g. if a user wants to open a public link
+	 * @param bool $status
+	 */
+	public static function setIncognitoMode($status) {
+		self::$incognitoMode = $status;
+
+	}
+
 	/**
 	 * Supplies an attribute to the logout hyperlink. The default behaviour
 	 * is to return an href with '?logout=true' appended. However, it can
@@ -354,7 +366,7 @@ class OC_User {
 	 */
 	public static function getUser() {
 		$uid = OC::$session ? OC::$session->get('user_id') : null;
-		if (!is_null($uid)) {
+		if (!is_null($uid) && self::$incognitoMode === false) {
 			return $uid;
 		} else {
 			return false;
-- 
GitLab