Move backend finding into its own method.

This commit is contained in:
Andreas Fischer 2013-10-02 15:31:46 +02:00
parent 131d82e41e
commit 47ed6a5135
1 changed files with 26 additions and 16 deletions

View File

@ -247,18 +247,15 @@ class OC_User {
* null: not handled / no backend available
*/
public static function handleApacheAuth() {
foreach (self::$_usedBackends as $backend) {
if ($backend instanceof OCP\Authentication\IApacheBackend) {
if ($backend->isSessionActive()) {
OC_App::loadApps();
$backend = self::findFirstActiveUsedBackend();
if ($backend) {
OC_App::loadApps();
//setup extra user backends
self::setupBackends();
self::unsetMagicInCookie();
//setup extra user backends
self::setupBackends();
self::unsetMagicInCookie();
return self::loginWithApache($backend);
}
}
return self::loginWithApache($backend);
}
return null;
@ -319,12 +316,9 @@ class OC_User {
* @return string with one or more HTML attributes.
*/
public static function getLogoutAttribute() {
foreach (self::$_usedBackends as $backend) {
if ($backend instanceof OCP\Authentication\IApacheBackend) {
if ($backend->isSessionActive()) {
return $backend->getLogoutAttribute();
}
}
$backend = self::findFirstActiveUsedBackend();
if ($backend) {
return $backend->getLogoutAttribute();
}
return "href=" . link_to('', 'index.php') . "?logout=true";
@ -568,4 +562,20 @@ class OC_User {
public static function unsetMagicInCookie() {
self::getUserSession()->unsetMagicInCookie();
}
/**
* @brief Returns the first active backend from self::$_usedBackends.
* @return null if no backend active, otherwise OCP\Authentication\IApacheBackend
*/
private static function findFirstActiveUsedBackend() {
foreach (self::$_usedBackends as $backend) {
if ($backend instanceof OCP\Authentication\IApacheBackend) {
if ($backend->isSessionActive()) {
return $backend;
}
}
}
return null;
}
}