|
|
|
|
@ -40,8 +40,6 @@ use Psr\Log\LoggerInterface; |
|
|
|
|
* logout() |
|
|
|
|
*/ |
|
|
|
|
class OC_User { |
|
|
|
|
private static $_usedBackends = []; |
|
|
|
|
|
|
|
|
|
private static $_setupedBackends = []; |
|
|
|
|
|
|
|
|
|
// bool, stores if a user want to access a resource anonymously, e.g if they open a public link |
|
|
|
|
@ -52,14 +50,13 @@ class OC_User { |
|
|
|
|
* |
|
|
|
|
* @param string|\OCP\UserInterface $backend default: database The backend to use for user management |
|
|
|
|
* @return bool |
|
|
|
|
* @deprecated 32.0.0 Use IUserManager::registerBackend instead |
|
|
|
|
* |
|
|
|
|
* Set the User Authentication Module |
|
|
|
|
* @suppress PhanDeprecatedFunction |
|
|
|
|
*/ |
|
|
|
|
public static function useBackend($backend = 'database') { |
|
|
|
|
if ($backend instanceof \OCP\UserInterface) { |
|
|
|
|
self::$_usedBackends[get_class($backend)] = $backend; |
|
|
|
|
\OC::$server->getUserManager()->registerBackend($backend); |
|
|
|
|
Server::get(IUserManager::class)->registerBackend($backend); |
|
|
|
|
} else { |
|
|
|
|
// You'll never know what happens |
|
|
|
|
if ($backend === null or !is_string($backend)) { |
|
|
|
|
@ -72,18 +69,15 @@ class OC_User { |
|
|
|
|
case 'mysql': |
|
|
|
|
case 'sqlite': |
|
|
|
|
Server::get(LoggerInterface::class)->debug('Adding user backend ' . $backend . '.', ['app' => 'core']); |
|
|
|
|
self::$_usedBackends[$backend] = new \OC\User\Database(); |
|
|
|
|
\OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]); |
|
|
|
|
Server::get(IUserManager::class)->registerBackend(new \OC\User\Database()); |
|
|
|
|
break; |
|
|
|
|
case 'dummy': |
|
|
|
|
self::$_usedBackends[$backend] = new \Test\Util\User\Dummy(); |
|
|
|
|
\OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]); |
|
|
|
|
Server::get(IUserManager::class)->registerBackend(new \Test\Util\User\Dummy()); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
Server::get(LoggerInterface::class)->debug('Adding default user backend ' . $backend . '.', ['app' => 'core']); |
|
|
|
|
$className = 'OC_USER_' . strtoupper($backend); |
|
|
|
|
self::$_usedBackends[$backend] = new $className(); |
|
|
|
|
\OC::$server->getUserManager()->registerBackend(self::$_usedBackends[$backend]); |
|
|
|
|
Server::get(IUserManager::class)->registerBackend(new $className()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -92,10 +86,10 @@ class OC_User { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* remove all used backends |
|
|
|
|
* @deprecated 32.0.0 Use IUserManager::clearBackends instead |
|
|
|
|
*/ |
|
|
|
|
public static function clearBackends() { |
|
|
|
|
self::$_usedBackends = []; |
|
|
|
|
\OC::$server->getUserManager()->clearBackends(); |
|
|
|
|
Server::get(IUserManager::class)->clearBackends(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -248,7 +242,7 @@ class OC_User { |
|
|
|
|
*/ |
|
|
|
|
public static function setUserId($uid) { |
|
|
|
|
$userSession = \OC::$server->getUserSession(); |
|
|
|
|
$userManager = \OC::$server->getUserManager(); |
|
|
|
|
$userManager = Server::get(IUserManager::class); |
|
|
|
|
if ($user = $userManager->get($uid)) { |
|
|
|
|
$userSession->setUser($user); |
|
|
|
|
} else { |
|
|
|
|
@ -348,7 +342,7 @@ class OC_User { |
|
|
|
|
* Change the password of a user |
|
|
|
|
*/ |
|
|
|
|
public static function setPassword($uid, $password, $recoveryPassword = null) { |
|
|
|
|
$user = \OC::$server->getUserManager()->get($uid); |
|
|
|
|
$user = Server::get(IUserManager::class)->get($uid); |
|
|
|
|
if ($user) { |
|
|
|
|
return $user->setPassword($password, $recoveryPassword); |
|
|
|
|
} else { |
|
|
|
|
@ -364,7 +358,7 @@ class OC_User { |
|
|
|
|
* @deprecated 12.0.0 Use \OC::$server->getUserManager->getHome() |
|
|
|
|
*/ |
|
|
|
|
public static function getHome($uid) { |
|
|
|
|
$user = \OC::$server->getUserManager()->get($uid); |
|
|
|
|
$user = Server::get(IUserManager::class)->get($uid); |
|
|
|
|
if ($user) { |
|
|
|
|
return $user->getHome(); |
|
|
|
|
} else { |
|
|
|
|
@ -385,7 +379,7 @@ class OC_User { |
|
|
|
|
*/ |
|
|
|
|
public static function getDisplayNames($search = '', $limit = null, $offset = null) { |
|
|
|
|
$displayNames = []; |
|
|
|
|
$users = \OC::$server->getUserManager()->searchDisplayName($search, $limit, $offset); |
|
|
|
|
$users = Server::get(IUserManager::class)->searchDisplayName($search, $limit, $offset); |
|
|
|
|
foreach ($users as $user) { |
|
|
|
|
$displayNames[$user->getUID()] = $user->getDisplayName(); |
|
|
|
|
} |
|
|
|
|
@ -398,7 +392,7 @@ class OC_User { |
|
|
|
|
* @return OCP\Authentication\IApacheBackend|null if no backend active, otherwise OCP\Authentication\IApacheBackend |
|
|
|
|
*/ |
|
|
|
|
private static function findFirstActiveUsedBackend() { |
|
|
|
|
foreach (self::$_usedBackends as $backend) { |
|
|
|
|
foreach (Server::get(IUserManager::class)->getBackends() as $backend) { |
|
|
|
|
if ($backend instanceof OCP\Authentication\IApacheBackend) { |
|
|
|
|
if ($backend->isSessionActive()) { |
|
|
|
|
return $backend; |
|
|
|
|
|