Completed
Push — master ( 703419...67da97 )
by Blizzz
25:01 queued 11:56
created
lib/private/legacy/user.php 1 patch
Indentation   +346 added lines, -346 removed lines patch added patch discarded remove patch
@@ -60,350 +60,350 @@
 block discarded – undo
60 60
  */
61 61
 class OC_User {
62 62
 
63
-	private static $_usedBackends = array();
64
-
65
-	private static $_setupedBackends = array();
66
-
67
-	// bool, stores if a user want to access a resource anonymously, e.g if they open a public link
68
-	private static $incognitoMode = false;
69
-
70
-	/**
71
-	 * Adds the backend to the list of used backends
72
-	 *
73
-	 * @param string|\OCP\UserInterface $backend default: database The backend to use for user management
74
-	 * @return bool
75
-	 *
76
-	 * Set the User Authentication Module
77
-	 * @suppress PhanDeprecatedFunction
78
-	 */
79
-	public static function useBackend($backend = 'database') {
80
-		if ($backend instanceof \OCP\UserInterface) {
81
-			self::$_usedBackends[get_class($backend)] = $backend;
82
-			\OC::$server->getUserManager()->registerBackend($backend);
83
-		} else {
84
-			// You'll never know what happens
85
-			if (null === $backend OR !is_string($backend)) {
86
-				$backend = 'database';
87
-			}
88
-
89
-			// Load backend
90
-			switch ($backend) {
91
-				case 'database':
92
-				case 'mysql':
93
-				case 'sqlite':
94
-					\OCP\Util::writeLog('core', 'Adding user backend ' . $backend . '.', ILogger::DEBUG);
95
-					self::$_usedBackends[$backend] = new \OC\User\Database();
96
-					\OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]);
97
-					break;
98
-				case 'dummy':
99
-					self::$_usedBackends[$backend] = new \Test\Util\User\Dummy();
100
-					\OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]);
101
-					break;
102
-				default:
103
-					\OCP\Util::writeLog('core', 'Adding default user backend ' . $backend . '.', ILogger::DEBUG);
104
-					$className = 'OC_USER_' . strtoupper($backend);
105
-					self::$_usedBackends[$backend] = new $className();
106
-					\OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]);
107
-					break;
108
-			}
109
-		}
110
-		return true;
111
-	}
112
-
113
-	/**
114
-	 * remove all used backends
115
-	 */
116
-	public static function clearBackends() {
117
-		self::$_usedBackends = array();
118
-		\OC::$server->getUserManager()->clearBackends();
119
-	}
120
-
121
-	/**
122
-	 * setup the configured backends in config.php
123
-	 * @suppress PhanDeprecatedFunction
124
-	 */
125
-	public static function setupBackends() {
126
-		OC_App::loadApps(['prelogin']);
127
-		$backends = \OC::$server->getSystemConfig()->getValue('user_backends', []);
128
-		if (isset($backends['default']) && !$backends['default']) {
129
-			// clear default backends
130
-			self::clearBackends();
131
-		}
132
-		foreach ($backends as $i => $config) {
133
-			if (!is_array($config)) {
134
-				continue;
135
-			}
136
-			$class = $config['class'];
137
-			$arguments = $config['arguments'];
138
-			if (class_exists($class)) {
139
-				if (array_search($i, self::$_setupedBackends) === false) {
140
-					// make a reflection object
141
-					$reflectionObj = new ReflectionClass($class);
142
-
143
-					// use Reflection to create a new instance, using the $args
144
-					$backend = $reflectionObj->newInstanceArgs($arguments);
145
-					self::useBackend($backend);
146
-					self::$_setupedBackends[] = $i;
147
-				} else {
148
-					\OCP\Util::writeLog('core', 'User backend ' . $class . ' already initialized.', ILogger::DEBUG);
149
-				}
150
-			} else {
151
-				\OCP\Util::writeLog('core', 'User backend ' . $class . ' not found.', ILogger::ERROR);
152
-			}
153
-		}
154
-	}
155
-
156
-	/**
157
-	 * Try to login a user, assuming authentication
158
-	 * has already happened (e.g. via Single Sign On).
159
-	 *
160
-	 * Log in a user and regenerate a new session.
161
-	 *
162
-	 * @param \OCP\Authentication\IApacheBackend $backend
163
-	 * @return bool
164
-	 */
165
-	public static function loginWithApache(\OCP\Authentication\IApacheBackend $backend) {
166
-
167
-		$uid = $backend->getCurrentUserId();
168
-		$run = true;
169
-		OC_Hook::emit("OC_User", "pre_login", array("run" => &$run, "uid" => $uid, 'backend' => $backend));
170
-
171
-		if ($uid) {
172
-			if (self::getUser() !== $uid) {
173
-				self::setUserId($uid);
174
-				$userSession = \OC::$server->getUserSession();
175
-				$userSession->setLoginName($uid);
176
-				$request = OC::$server->getRequest();
177
-				$userSession->createSessionToken($request, $uid, $uid);
178
-				// setup the filesystem
179
-				OC_Util::setupFS($uid);
180
-				// first call the post_login hooks, the login-process needs to be
181
-				// completed before we can safely create the users folder.
182
-				// For example encryption needs to initialize the users keys first
183
-				// before we can create the user folder with the skeleton files
184
-				OC_Hook::emit("OC_User", "post_login", array("uid" => $uid, 'password' => ''));
185
-				//trigger creation of user home and /files folder
186
-				\OC::$server->getUserFolder($uid);
187
-			}
188
-			return true;
189
-		}
190
-		return false;
191
-	}
192
-
193
-	/**
194
-	 * Verify with Apache whether user is authenticated.
195
-	 *
196
-	 * @return boolean|null
197
-	 *          true: authenticated
198
-	 *          false: not authenticated
199
-	 *          null: not handled / no backend available
200
-	 */
201
-	public static function handleApacheAuth() {
202
-		$backend = self::findFirstActiveUsedBackend();
203
-		if ($backend) {
204
-			OC_App::loadApps();
205
-
206
-			//setup extra user backends
207
-			self::setupBackends();
208
-			\OC::$server->getUserSession()->unsetMagicInCookie();
209
-
210
-			return self::loginWithApache($backend);
211
-		}
212
-
213
-		return null;
214
-	}
215
-
216
-
217
-	/**
218
-	 * Sets user id for session and triggers emit
219
-	 *
220
-	 * @param string $uid
221
-	 */
222
-	public static function setUserId($uid) {
223
-		$userSession = \OC::$server->getUserSession();
224
-		$userManager = \OC::$server->getUserManager();
225
-		if ($user = $userManager->get($uid)) {
226
-			$userSession->setUser($user);
227
-		} else {
228
-			\OC::$server->getSession()->set('user_id', $uid);
229
-		}
230
-	}
231
-
232
-	/**
233
-	 * Check if the user is logged in, considers also the HTTP basic credentials
234
-	 *
235
-	 * @deprecated use \OC::$server->getUserSession()->isLoggedIn()
236
-	 * @return bool
237
-	 */
238
-	public static function isLoggedIn() {
239
-		return \OC::$server->getUserSession()->isLoggedIn();
240
-	}
241
-
242
-	/**
243
-	 * set incognito mode, e.g. if a user wants to open a public link
244
-	 *
245
-	 * @param bool $status
246
-	 */
247
-	public static function setIncognitoMode($status) {
248
-		self::$incognitoMode = $status;
249
-	}
250
-
251
-	/**
252
-	 * get incognito mode status
253
-	 *
254
-	 * @return bool
255
-	 */
256
-	public static function isIncognitoMode() {
257
-		return self::$incognitoMode;
258
-	}
259
-
260
-	/**
261
-	 * Returns the current logout URL valid for the currently logged-in user
262
-	 *
263
-	 * @param \OCP\IURLGenerator $urlGenerator
264
-	 * @return string
265
-	 */
266
-	public static function getLogoutUrl(\OCP\IURLGenerator $urlGenerator) {
267
-		$backend = self::findFirstActiveUsedBackend();
268
-		if ($backend) {
269
-			return $backend->getLogoutUrl();
270
-		}
271
-
272
-		$logoutUrl = $urlGenerator->linkToRouteAbsolute(
273
-			'core.login.logout',
274
-			[
275
-				'requesttoken' => \OCP\Util::callRegister(),
276
-			]
277
-		);
278
-
279
-		return $logoutUrl;
280
-	}
281
-
282
-	/**
283
-	 * Check if the user is an admin user
284
-	 *
285
-	 * @param string $uid uid of the admin
286
-	 * @return bool
287
-	 */
288
-	public static function isAdminUser($uid) {
289
-		$group = \OC::$server->getGroupManager()->get('admin');
290
-		$user = \OC::$server->getUserManager()->get($uid);
291
-		if ($group && $user && $group->inGroup($user) && self::$incognitoMode === false) {
292
-			return true;
293
-		}
294
-		return false;
295
-	}
296
-
297
-
298
-	/**
299
-	 * get the user id of the user currently logged in.
300
-	 *
301
-	 * @return string|bool uid or false
302
-	 */
303
-	public static function getUser() {
304
-		$uid = \OC::$server->getSession() ? \OC::$server->getSession()->get('user_id') : null;
305
-		if (!is_null($uid) && self::$incognitoMode === false) {
306
-			return $uid;
307
-		} else {
308
-			return false;
309
-		}
310
-	}
311
-
312
-	/**
313
-	 * get the display name of the user currently logged in.
314
-	 *
315
-	 * @param string $uid
316
-	 * @return string|bool uid or false
317
-	 * @deprecated 8.1.0 fetch \OCP\IUser (has getDisplayName()) by using method
318
-	 *                   get() of \OCP\IUserManager - \OC::$server->getUserManager()
319
-	 */
320
-	public static function getDisplayName($uid = null) {
321
-		if ($uid) {
322
-			$user = \OC::$server->getUserManager()->get($uid);
323
-			if ($user) {
324
-				return $user->getDisplayName();
325
-			} else {
326
-				return $uid;
327
-			}
328
-		} else {
329
-			$user = \OC::$server->getUserSession()->getUser();
330
-			if ($user) {
331
-				return $user->getDisplayName();
332
-			} else {
333
-				return false;
334
-			}
335
-		}
336
-	}
337
-
338
-	/**
339
-	 * Set password
340
-	 *
341
-	 * @param string $uid The username
342
-	 * @param string $password The new password
343
-	 * @param string $recoveryPassword for the encryption app to reset encryption keys
344
-	 * @return bool
345
-	 *
346
-	 * Change the password of a user
347
-	 */
348
-	public static function setPassword($uid, $password, $recoveryPassword = null) {
349
-		$user = \OC::$server->getUserManager()->get($uid);
350
-		if ($user) {
351
-			return $user->setPassword($password, $recoveryPassword);
352
-		} else {
353
-			return false;
354
-		}
355
-	}
356
-
357
-	/**
358
-	 * @param string $uid The username
359
-	 * @return string
360
-	 *
361
-	 * returns the path to the users home directory
362
-	 * @deprecated Use \OC::$server->getUserManager->getHome()
363
-	 */
364
-	public static function getHome($uid) {
365
-		$user = \OC::$server->getUserManager()->get($uid);
366
-		if ($user) {
367
-			return $user->getHome();
368
-		} else {
369
-			return \OC::$server->getSystemConfig()->getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid;
370
-		}
371
-	}
372
-
373
-	/**
374
-	 * Get a list of all users display name
375
-	 *
376
-	 * @param string $search
377
-	 * @param int $limit
378
-	 * @param int $offset
379
-	 * @return array associative array with all display names (value) and corresponding uids (key)
380
-	 *
381
-	 * Get a list of all display names and user ids.
382
-	 * @deprecated Use \OC::$server->getUserManager->searchDisplayName($search, $limit, $offset) instead.
383
-	 */
384
-	public static function getDisplayNames($search = '', $limit = null, $offset = null) {
385
-		$displayNames = array();
386
-		$users = \OC::$server->getUserManager()->searchDisplayName($search, $limit, $offset);
387
-		foreach ($users as $user) {
388
-			$displayNames[$user->getUID()] = $user->getDisplayName();
389
-		}
390
-		return $displayNames;
391
-	}
392
-
393
-	/**
394
-	 * Returns the first active backend from self::$_usedBackends.
395
-	 *
396
-	 * @return OCP\Authentication\IApacheBackend|null if no backend active, otherwise OCP\Authentication\IApacheBackend
397
-	 */
398
-	private static function findFirstActiveUsedBackend() {
399
-		foreach (self::$_usedBackends as $backend) {
400
-			if ($backend instanceof OCP\Authentication\IApacheBackend) {
401
-				if ($backend->isSessionActive()) {
402
-					return $backend;
403
-				}
404
-			}
405
-		}
406
-
407
-		return null;
408
-	}
63
+    private static $_usedBackends = array();
64
+
65
+    private static $_setupedBackends = array();
66
+
67
+    // bool, stores if a user want to access a resource anonymously, e.g if they open a public link
68
+    private static $incognitoMode = false;
69
+
70
+    /**
71
+     * Adds the backend to the list of used backends
72
+     *
73
+     * @param string|\OCP\UserInterface $backend default: database The backend to use for user management
74
+     * @return bool
75
+     *
76
+     * Set the User Authentication Module
77
+     * @suppress PhanDeprecatedFunction
78
+     */
79
+    public static function useBackend($backend = 'database') {
80
+        if ($backend instanceof \OCP\UserInterface) {
81
+            self::$_usedBackends[get_class($backend)] = $backend;
82
+            \OC::$server->getUserManager()->registerBackend($backend);
83
+        } else {
84
+            // You'll never know what happens
85
+            if (null === $backend OR !is_string($backend)) {
86
+                $backend = 'database';
87
+            }
88
+
89
+            // Load backend
90
+            switch ($backend) {
91
+                case 'database':
92
+                case 'mysql':
93
+                case 'sqlite':
94
+                    \OCP\Util::writeLog('core', 'Adding user backend ' . $backend . '.', ILogger::DEBUG);
95
+                    self::$_usedBackends[$backend] = new \OC\User\Database();
96
+                    \OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]);
97
+                    break;
98
+                case 'dummy':
99
+                    self::$_usedBackends[$backend] = new \Test\Util\User\Dummy();
100
+                    \OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]);
101
+                    break;
102
+                default:
103
+                    \OCP\Util::writeLog('core', 'Adding default user backend ' . $backend . '.', ILogger::DEBUG);
104
+                    $className = 'OC_USER_' . strtoupper($backend);
105
+                    self::$_usedBackends[$backend] = new $className();
106
+                    \OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]);
107
+                    break;
108
+            }
109
+        }
110
+        return true;
111
+    }
112
+
113
+    /**
114
+     * remove all used backends
115
+     */
116
+    public static function clearBackends() {
117
+        self::$_usedBackends = array();
118
+        \OC::$server->getUserManager()->clearBackends();
119
+    }
120
+
121
+    /**
122
+     * setup the configured backends in config.php
123
+     * @suppress PhanDeprecatedFunction
124
+     */
125
+    public static function setupBackends() {
126
+        OC_App::loadApps(['prelogin']);
127
+        $backends = \OC::$server->getSystemConfig()->getValue('user_backends', []);
128
+        if (isset($backends['default']) && !$backends['default']) {
129
+            // clear default backends
130
+            self::clearBackends();
131
+        }
132
+        foreach ($backends as $i => $config) {
133
+            if (!is_array($config)) {
134
+                continue;
135
+            }
136
+            $class = $config['class'];
137
+            $arguments = $config['arguments'];
138
+            if (class_exists($class)) {
139
+                if (array_search($i, self::$_setupedBackends) === false) {
140
+                    // make a reflection object
141
+                    $reflectionObj = new ReflectionClass($class);
142
+
143
+                    // use Reflection to create a new instance, using the $args
144
+                    $backend = $reflectionObj->newInstanceArgs($arguments);
145
+                    self::useBackend($backend);
146
+                    self::$_setupedBackends[] = $i;
147
+                } else {
148
+                    \OCP\Util::writeLog('core', 'User backend ' . $class . ' already initialized.', ILogger::DEBUG);
149
+                }
150
+            } else {
151
+                \OCP\Util::writeLog('core', 'User backend ' . $class . ' not found.', ILogger::ERROR);
152
+            }
153
+        }
154
+    }
155
+
156
+    /**
157
+     * Try to login a user, assuming authentication
158
+     * has already happened (e.g. via Single Sign On).
159
+     *
160
+     * Log in a user and regenerate a new session.
161
+     *
162
+     * @param \OCP\Authentication\IApacheBackend $backend
163
+     * @return bool
164
+     */
165
+    public static function loginWithApache(\OCP\Authentication\IApacheBackend $backend) {
166
+
167
+        $uid = $backend->getCurrentUserId();
168
+        $run = true;
169
+        OC_Hook::emit("OC_User", "pre_login", array("run" => &$run, "uid" => $uid, 'backend' => $backend));
170
+
171
+        if ($uid) {
172
+            if (self::getUser() !== $uid) {
173
+                self::setUserId($uid);
174
+                $userSession = \OC::$server->getUserSession();
175
+                $userSession->setLoginName($uid);
176
+                $request = OC::$server->getRequest();
177
+                $userSession->createSessionToken($request, $uid, $uid);
178
+                // setup the filesystem
179
+                OC_Util::setupFS($uid);
180
+                // first call the post_login hooks, the login-process needs to be
181
+                // completed before we can safely create the users folder.
182
+                // For example encryption needs to initialize the users keys first
183
+                // before we can create the user folder with the skeleton files
184
+                OC_Hook::emit("OC_User", "post_login", array("uid" => $uid, 'password' => ''));
185
+                //trigger creation of user home and /files folder
186
+                \OC::$server->getUserFolder($uid);
187
+            }
188
+            return true;
189
+        }
190
+        return false;
191
+    }
192
+
193
+    /**
194
+     * Verify with Apache whether user is authenticated.
195
+     *
196
+     * @return boolean|null
197
+     *          true: authenticated
198
+     *          false: not authenticated
199
+     *          null: not handled / no backend available
200
+     */
201
+    public static function handleApacheAuth() {
202
+        $backend = self::findFirstActiveUsedBackend();
203
+        if ($backend) {
204
+            OC_App::loadApps();
205
+
206
+            //setup extra user backends
207
+            self::setupBackends();
208
+            \OC::$server->getUserSession()->unsetMagicInCookie();
209
+
210
+            return self::loginWithApache($backend);
211
+        }
212
+
213
+        return null;
214
+    }
215
+
216
+
217
+    /**
218
+     * Sets user id for session and triggers emit
219
+     *
220
+     * @param string $uid
221
+     */
222
+    public static function setUserId($uid) {
223
+        $userSession = \OC::$server->getUserSession();
224
+        $userManager = \OC::$server->getUserManager();
225
+        if ($user = $userManager->get($uid)) {
226
+            $userSession->setUser($user);
227
+        } else {
228
+            \OC::$server->getSession()->set('user_id', $uid);
229
+        }
230
+    }
231
+
232
+    /**
233
+     * Check if the user is logged in, considers also the HTTP basic credentials
234
+     *
235
+     * @deprecated use \OC::$server->getUserSession()->isLoggedIn()
236
+     * @return bool
237
+     */
238
+    public static function isLoggedIn() {
239
+        return \OC::$server->getUserSession()->isLoggedIn();
240
+    }
241
+
242
+    /**
243
+     * set incognito mode, e.g. if a user wants to open a public link
244
+     *
245
+     * @param bool $status
246
+     */
247
+    public static function setIncognitoMode($status) {
248
+        self::$incognitoMode = $status;
249
+    }
250
+
251
+    /**
252
+     * get incognito mode status
253
+     *
254
+     * @return bool
255
+     */
256
+    public static function isIncognitoMode() {
257
+        return self::$incognitoMode;
258
+    }
259
+
260
+    /**
261
+     * Returns the current logout URL valid for the currently logged-in user
262
+     *
263
+     * @param \OCP\IURLGenerator $urlGenerator
264
+     * @return string
265
+     */
266
+    public static function getLogoutUrl(\OCP\IURLGenerator $urlGenerator) {
267
+        $backend = self::findFirstActiveUsedBackend();
268
+        if ($backend) {
269
+            return $backend->getLogoutUrl();
270
+        }
271
+
272
+        $logoutUrl = $urlGenerator->linkToRouteAbsolute(
273
+            'core.login.logout',
274
+            [
275
+                'requesttoken' => \OCP\Util::callRegister(),
276
+            ]
277
+        );
278
+
279
+        return $logoutUrl;
280
+    }
281
+
282
+    /**
283
+     * Check if the user is an admin user
284
+     *
285
+     * @param string $uid uid of the admin
286
+     * @return bool
287
+     */
288
+    public static function isAdminUser($uid) {
289
+        $group = \OC::$server->getGroupManager()->get('admin');
290
+        $user = \OC::$server->getUserManager()->get($uid);
291
+        if ($group && $user && $group->inGroup($user) && self::$incognitoMode === false) {
292
+            return true;
293
+        }
294
+        return false;
295
+    }
296
+
297
+
298
+    /**
299
+     * get the user id of the user currently logged in.
300
+     *
301
+     * @return string|bool uid or false
302
+     */
303
+    public static function getUser() {
304
+        $uid = \OC::$server->getSession() ? \OC::$server->getSession()->get('user_id') : null;
305
+        if (!is_null($uid) && self::$incognitoMode === false) {
306
+            return $uid;
307
+        } else {
308
+            return false;
309
+        }
310
+    }
311
+
312
+    /**
313
+     * get the display name of the user currently logged in.
314
+     *
315
+     * @param string $uid
316
+     * @return string|bool uid or false
317
+     * @deprecated 8.1.0 fetch \OCP\IUser (has getDisplayName()) by using method
318
+     *                   get() of \OCP\IUserManager - \OC::$server->getUserManager()
319
+     */
320
+    public static function getDisplayName($uid = null) {
321
+        if ($uid) {
322
+            $user = \OC::$server->getUserManager()->get($uid);
323
+            if ($user) {
324
+                return $user->getDisplayName();
325
+            } else {
326
+                return $uid;
327
+            }
328
+        } else {
329
+            $user = \OC::$server->getUserSession()->getUser();
330
+            if ($user) {
331
+                return $user->getDisplayName();
332
+            } else {
333
+                return false;
334
+            }
335
+        }
336
+    }
337
+
338
+    /**
339
+     * Set password
340
+     *
341
+     * @param string $uid The username
342
+     * @param string $password The new password
343
+     * @param string $recoveryPassword for the encryption app to reset encryption keys
344
+     * @return bool
345
+     *
346
+     * Change the password of a user
347
+     */
348
+    public static function setPassword($uid, $password, $recoveryPassword = null) {
349
+        $user = \OC::$server->getUserManager()->get($uid);
350
+        if ($user) {
351
+            return $user->setPassword($password, $recoveryPassword);
352
+        } else {
353
+            return false;
354
+        }
355
+    }
356
+
357
+    /**
358
+     * @param string $uid The username
359
+     * @return string
360
+     *
361
+     * returns the path to the users home directory
362
+     * @deprecated Use \OC::$server->getUserManager->getHome()
363
+     */
364
+    public static function getHome($uid) {
365
+        $user = \OC::$server->getUserManager()->get($uid);
366
+        if ($user) {
367
+            return $user->getHome();
368
+        } else {
369
+            return \OC::$server->getSystemConfig()->getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid;
370
+        }
371
+    }
372
+
373
+    /**
374
+     * Get a list of all users display name
375
+     *
376
+     * @param string $search
377
+     * @param int $limit
378
+     * @param int $offset
379
+     * @return array associative array with all display names (value) and corresponding uids (key)
380
+     *
381
+     * Get a list of all display names and user ids.
382
+     * @deprecated Use \OC::$server->getUserManager->searchDisplayName($search, $limit, $offset) instead.
383
+     */
384
+    public static function getDisplayNames($search = '', $limit = null, $offset = null) {
385
+        $displayNames = array();
386
+        $users = \OC::$server->getUserManager()->searchDisplayName($search, $limit, $offset);
387
+        foreach ($users as $user) {
388
+            $displayNames[$user->getUID()] = $user->getDisplayName();
389
+        }
390
+        return $displayNames;
391
+    }
392
+
393
+    /**
394
+     * Returns the first active backend from self::$_usedBackends.
395
+     *
396
+     * @return OCP\Authentication\IApacheBackend|null if no backend active, otherwise OCP\Authentication\IApacheBackend
397
+     */
398
+    private static function findFirstActiveUsedBackend() {
399
+        foreach (self::$_usedBackends as $backend) {
400
+            if ($backend instanceof OCP\Authentication\IApacheBackend) {
401
+                if ($backend->isSessionActive()) {
402
+                    return $backend;
403
+                }
404
+            }
405
+        }
406
+
407
+        return null;
408
+    }
409 409
 }
Please login to merge, or discard this patch.