diff --git a/appinfo/info.xml b/appinfo/info.xml index 2a79e40..8da96b7 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -22,7 +22,7 @@ auth - + \OCA\UserSQL\Settings\Admin diff --git a/lib/Action/EmailSync.php b/lib/Action/EmailSync.php index 3d43448..f207373 100644 --- a/lib/Action/EmailSync.php +++ b/lib/Action/EmailSync.php @@ -27,6 +27,7 @@ use OCA\UserSQL\Properties; use OCA\UserSQL\Repository\UserRepository; use OCP\IConfig; +use OCP\IUserManager; use Psr\Log\LoggerInterface; /** @@ -56,6 +57,10 @@ class EmailSync implements IUserAction * @var UserRepository The user repository. */ private $userRepository; + /** + * @var IUserManager The user manager object. + */ + private $userManager; /** * The default constructor. @@ -68,13 +73,14 @@ class EmailSync implements IUserAction */ public function __construct( $appName, LoggerInterface $logger, Properties $properties, IConfig $config, - UserRepository $userRepository + UserRepository $userRepository, IUserManager $userManager ) { $this->appName = $appName; $this->logger = $logger; $this->properties = $properties; $this->config = $config; $this->userRepository = $userRepository; + $this->userManager = $userManager; } /** @@ -104,7 +110,7 @@ public function doAction(User $user) $this->config->setUserValue( $user->uid, "settings", "email", $user->email ); - \OC::$server->getUserManager()->get($user->uid)->setEMailAddress($user->email); + $this->userManager->get($user->uid)->setEMailAddress($user->email); } $result = true; @@ -126,7 +132,7 @@ public function doAction(User $user) $this->config->setUserValue( $user->uid, "settings", "email", $user->email ); - \OC::$server->getUserManager()->get($user->uid)->setEMailAddress($user->email); + $this->userManager->get($user->uid)->setEMailAddress($user->email); } $result = true; diff --git a/lib/Action/NameSync.php b/lib/Action/NameSync.php index 2c5991f..8d80203 100644 --- a/lib/Action/NameSync.php +++ b/lib/Action/NameSync.php @@ -27,6 +27,7 @@ use OCA\UserSQL\Properties; use OCA\UserSQL\Repository\UserRepository; use OCP\IConfig; +use OCP\IUserManager; use Psr\Log\LoggerInterface; /** @@ -56,6 +57,10 @@ class NameSync implements IUserAction * @var UserRepository The user repository. */ private $userRepository; + /** + * @var IUserManager The user manager provider. + */ + private $userManager; /** * The default constructor. @@ -65,16 +70,18 @@ class NameSync implements IUserAction * @param Properties $properties The properties array. * @param IConfig $config The config instance. * @param UserRepository $userRepository The user repository. + * @param IUserManager $userManager The user manager provider. */ public function __construct( $appName, LoggerInterface $logger, Properties $properties, IConfig $config, - UserRepository $userRepository + UserRepository $userRepository, IUserManager $userManager ) { $this->appName = $appName; $this->logger = $logger; $this->properties = $properties; $this->config = $config; $this->userRepository = $userRepository; + $this->userManager = $userManager; } /** @@ -99,7 +106,7 @@ public function doAction(User $user) $this->config->setUserValue( $user->uid, "settings", "displayName", $user->name ); - \OC::$server->getUserManager()->get($user->uid)->setDisplayName($user->name); + $this->userManager->get($user->uid)->setDisplayName($user->name); } $result = true; @@ -121,7 +128,7 @@ public function doAction(User $user) $this->config->setUserValue( $user->uid, "settings", "displayName", $user->name ); - \OC::$server->getUserManager()->get($user->uid)->setDisplayName($user->name); + $this->userManager->get($user->uid)->setDisplayName($user->name); } $result = true; diff --git a/lib/Backend/GroupBackend.php b/lib/Backend/GroupBackend.php index d7c2114..507841a 100644 --- a/lib/Backend/GroupBackend.php +++ b/lib/Backend/GroupBackend.php @@ -72,6 +72,10 @@ final class GroupBackend extends ABackend implements * @var Properties The properties array. */ private $properties; + /** + * @var IUserManager The user manager provider + */ + private $userManager; /** * The default constructor. @@ -81,16 +85,18 @@ final class GroupBackend extends ABackend implements * @param LoggerInterface $logger The logger instance. * @param Properties $properties The properties array. * @param GroupRepository $groupRepository The group repository. + * @param IUserManager $userManager The user manager provider. */ public function __construct( $AppName, Cache $cache, LoggerInterface $logger, Properties $properties, - GroupRepository $groupRepository + GroupRepository $groupRepository, IUserManager $userManager ) { $this->appName = $AppName; $this->cache = $cache; $this->logger = $logger; $this->properties = $properties; $this->groupRepository = $groupRepository; + $this->userManager = $userManager; } /** @@ -434,9 +440,8 @@ public function searchInGroup(string $gid, string $search = '', int $limit = -1, } $users = []; - $userManager = \OCP\Server::get(IUserManager::class); foreach ($names as $uid => $name) { - $users[$uid] = new LazyUser($uid, $userManager, $name); + $users[$uid] = new LazyUser($uid, $this->userManager, $name); } return $users; diff --git a/lib/Backend/UserBackend.php b/lib/Backend/UserBackend.php index 842c1bc..66ec5ae 100644 --- a/lib/Backend/UserBackend.php +++ b/lib/Backend/UserBackend.php @@ -37,6 +37,7 @@ use OCP\EventDispatcher\IEventDispatcher; use OCP\IConfig; use OCP\IL10N; +use OCP\IUserManager; use Psr\Log\LoggerInterface; use OCP\Security\Events\ValidatePasswordPolicyEvent; use OCP\User\Backend\ABackend; @@ -100,6 +101,10 @@ final class UserBackend extends ABackend implements * @var IUserAction[] The actions to execute. */ private $actions; + /** + * @var IUserManager The user manager object. + */ + private $userManager; /** * The default constructor. @@ -112,11 +117,12 @@ final class UserBackend extends ABackend implements * @param IL10N $localization The localization service. * @param IConfig $config The config instance. * @param IEventDispatcher $eventDispatcher The event dispatcher. + * @param IUserManager $userManager The user manager provider. */ public function __construct( $AppName, Cache $cache, LoggerInterface $logger, Properties $properties, UserRepository $userRepository, IL10N $localization, IConfig $config, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, IUserManager $userManager ) { $this->appName = $AppName; $this->cache = $cache; @@ -126,6 +132,7 @@ public function __construct( $this->localization = $localization; $this->config = $config; $this->eventDispatcher = $eventDispatcher; + $this->userManager = $userManager; $this->actions = []; $this->initActions(); @@ -141,7 +148,7 @@ private function initActions() ) { $this->actions[] = new EmailSync( $this->appName, $this->logger, $this->properties, $this->config, - $this->userRepository + $this->userRepository, $this->userManager ); } if (!empty($this->properties[Opt::QUOTA_SYNC]) @@ -157,7 +164,7 @@ private function initActions() ) { $this->actions[] = new NameSync( $this->appName, $this->logger, $this->properties, $this->config, - $this->userRepository + $this->userRepository, $this->userManager ); } } diff --git a/lib/Cache.php b/lib/Cache.php index 7026e4a..93087de 100644 --- a/lib/Cache.php +++ b/lib/Cache.php @@ -28,6 +28,7 @@ use OCA\UserSQL\Constant\App; use OCA\UserSQL\Constant\Opt; use OCP\ICache; +use OCP\ICacheFactory; use OCP\IConfig; use Psr\Log\LoggerInterface; @@ -50,10 +51,10 @@ class Cache * @param string $AppName The application name. * @param IConfig $config The config instance. * @param LoggerInterface $logger The logger instance. + @param ICacheFactory $factory The cache factory instance. */ - public function __construct($AppName, IConfig $config, LoggerInterface $logger) + public function __construct($AppName, IConfig $config, LoggerInterface $logger, ICacheFactory $factory) { - $factory = \OC::$server->getMemCacheFactory(); $useCache = $config->getAppValue( $AppName, Opt::USE_CACHE, App::FALSE_VALUE ); @@ -62,7 +63,7 @@ public function __construct($AppName, IConfig $config, LoggerInterface $logger) $this->cache = new NullCache(); } else { if ($factory->isAvailable()) { - $this->cache = $factory->createDistributed(); + $this->cache = $factory->createDistributed($AppName); } if ($this->cache === null || ($this->cache instanceof NullCache)) { $logger->debug( diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php index 7786006..20e274e 100644 --- a/lib/Controller/SettingsController.php +++ b/lib/Controller/SettingsController.php @@ -26,6 +26,7 @@ use OC\DatabaseException; use OC\DB\Connection; use OC\DB\ConnectionFactory; +use OC\SystemConfig; use OCA\UserSQL\Cache; use OCA\UserSQL\Constant\App; use OCA\UserSQL\Constant\DB; @@ -65,6 +66,10 @@ class SettingsController extends Controller * @var Cache The cache instance. */ private $cache; + /** + * @var SystemConfig The system configuration provider. + */ + private $systemConfig; /** * The default constructor. @@ -78,7 +83,7 @@ class SettingsController extends Controller */ public function __construct( $appName, IRequest $request, LoggerInterface $logger, IL10N $localization, - Properties $properties, Cache $cache + Properties $properties, Cache $cache, SystemConfig $systemConfig ) { parent::__construct($appName, $request); $this->appName = $appName; @@ -86,6 +91,7 @@ public function __construct( $this->localization = $localization; $this->properties = $properties; $this->cache = $cache; + $this->systemConfig = $systemConfig; } /** @@ -157,7 +163,7 @@ private function getConnection() } $connectionFactory = new ConnectionFactory( - \OC::$server->getSystemConfig() + $this->systemConfig() ); $parameters = [ diff --git a/lib/Query/DataQuery.php b/lib/Query/DataQuery.php index 4203182..a3d0db0 100644 --- a/lib/Query/DataQuery.php +++ b/lib/Query/DataQuery.php @@ -29,6 +29,7 @@ use Doctrine\DBAL\Exception as DBALException; use OC\DB\Connection; use OC\DB\ConnectionFactory; +use OC\SystemConfig; use OCA\UserSQL\Constant\DB; use OCA\UserSQL\Constant\Query; use OCA\UserSQL\Properties; @@ -69,15 +70,17 @@ class DataQuery * @param LoggerInterface $logger The logger instance. * @param Properties $properties The properties array. * @param QueryProvider $queryProvider The query provider. + * @param SystemConfig $systemConfig The system configuration provider. */ public function __construct( $AppName, LoggerInterface $logger, Properties $properties, - QueryProvider $queryProvider + QueryProvider $queryProvider, SystemConfig $systemConfig ) { $this->appName = $AppName; $this->logger = $logger; $this->properties = $properties; $this->queryProvider = $queryProvider; + $this->systemConfig = $systemConfig; $this->connection = false; } @@ -98,10 +101,10 @@ public function update($queryName, $params = []) /** * Run a given query and return the result. * - * @param string $queryName The query to execute. - * @param array $params The query parameters to bind. - * @param int $limit Results limit. Defaults to -1 (no limit). - * @param int $offset Results offset. Defaults to 0. + * @param string $queryName The query to execute. + * @param array $params The query parameters to bind. + * @param int $limit Results limit. Defaults to -1 (no limit). + * @param int $offset Results offset. Defaults to 0. * * @return Statement|bool Result of query or FALSE on failure. */ @@ -142,9 +145,7 @@ private function execQuery( */ private function connectToDatabase() { - $connectionFactory = new ConnectionFactory( - \OC::$server->getSystemConfig() - ); + $connectionFactory = new ConnectionFactory($this->systemConfig); $parameters = array( "host" => $this->properties[DB::HOSTNAME], @@ -184,10 +185,10 @@ private function connectToDatabase() * Fetch a value from the first row and the first column which * the given query returns. Empty result set is consider to be a failure. * - * @param string $queryName The query to execute. - * @param array $params The query parameters to bind. - * @param bool $failure Value returned on database query failure. - * Defaults to FALSE. + * @param string $queryName The query to execute. + * @param array $params The query parameters to bind. + * @param bool $failure Value returned on database query failure. + * Defaults to FALSE. * * @return array|bool Queried value or $failure value on failure. */