|
|
|
@ -24,77 +24,29 @@ |
|
|
|
|
|
|
|
|
|
namespace OCA\Federation\AppInfo; |
|
|
|
|
|
|
|
|
|
use OCA\Federation\Controller\SettingsController; |
|
|
|
|
use OCA\Federation\DAV\FedAuth; |
|
|
|
|
use OCA\Federation\DbHandler; |
|
|
|
|
use OCA\Federation\Hooks; |
|
|
|
|
use OCA\Federation\Middleware\AddServerMiddleware; |
|
|
|
|
use OCA\Federation\SyncFederationAddressBooks; |
|
|
|
|
use OCA\Federation\TrustedServers; |
|
|
|
|
use OCP\AppFramework\IAppContainer; |
|
|
|
|
use OCP\AppFramework\Utility\ITimeFactory; |
|
|
|
|
use OCP\AppFramework\App; |
|
|
|
|
use OCP\SabrePluginEvent; |
|
|
|
|
use OCP\Util; |
|
|
|
|
use Sabre\DAV\Auth\Plugin; |
|
|
|
|
use Sabre\DAV\Server; |
|
|
|
|
|
|
|
|
|
class Application extends \OCP\AppFramework\App { |
|
|
|
|
class Application extends App { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param array $urlParams |
|
|
|
|
*/ |
|
|
|
|
public function __construct($urlParams = array()) { |
|
|
|
|
public function __construct($urlParams = []) { |
|
|
|
|
parent::__construct('federation', $urlParams); |
|
|
|
|
$this->registerService(); |
|
|
|
|
$this->registerMiddleware(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private function registerService() { |
|
|
|
|
$container = $this->getContainer(); |
|
|
|
|
|
|
|
|
|
$container->registerService('addServerMiddleware', function(IAppContainer $c) { |
|
|
|
|
return new AddServerMiddleware( |
|
|
|
|
$c->getAppName(), |
|
|
|
|
\OC::$server->getL10N($c->getAppName()), |
|
|
|
|
\OC::$server->getLogger() |
|
|
|
|
); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$container->registerService('DbHandler', function(IAppContainer $c) { |
|
|
|
|
return new DbHandler( |
|
|
|
|
\OC::$server->getDatabaseConnection(), |
|
|
|
|
\OC::$server->getL10N($c->getAppName()) |
|
|
|
|
); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$container->registerService('TrustedServers', function(IAppContainer $c) { |
|
|
|
|
$server = $c->getServer(); |
|
|
|
|
return new TrustedServers( |
|
|
|
|
$c->query('DbHandler'), |
|
|
|
|
$server->getHTTPClientService(), |
|
|
|
|
$server->getLogger(), |
|
|
|
|
$server->getJobList(), |
|
|
|
|
$server->getSecureRandom(), |
|
|
|
|
$server->getConfig(), |
|
|
|
|
$server->getEventDispatcher(), |
|
|
|
|
$server->query(ITimeFactory::class) |
|
|
|
|
); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$container->registerService('SettingsController', function (IAppContainer $c) { |
|
|
|
|
$server = $c->getServer(); |
|
|
|
|
return new SettingsController( |
|
|
|
|
$c->getAppName(), |
|
|
|
|
$server->getRequest(), |
|
|
|
|
$server->getL10N($c->getAppName()), |
|
|
|
|
$c->query('TrustedServers') |
|
|
|
|
); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private function registerMiddleware() { |
|
|
|
|
$container = $this->getContainer(); |
|
|
|
|
$container->registerMiddleware('addServerMiddleware'); |
|
|
|
|
$container->registerAlias('AddServerMiddleware', AddServerMiddleware::class); |
|
|
|
|
$container->registerMiddleWare('AddServerMiddleware'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -104,7 +56,7 @@ class Application extends \OCP\AppFramework\App { |
|
|
|
|
public function registerHooks() { |
|
|
|
|
|
|
|
|
|
$container = $this->getContainer(); |
|
|
|
|
$hooksManager = new Hooks($container->query('TrustedServers')); |
|
|
|
|
$hooksManager = $container->query(Hooks::class); |
|
|
|
|
|
|
|
|
|
Util::connectHook( |
|
|
|
|
'OCP\Share', |
|
|
|
@ -113,28 +65,18 @@ class Application extends \OCP\AppFramework\App { |
|
|
|
|
'addServerHook' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$dispatcher = $this->getContainer()->getServer()->getEventDispatcher(); |
|
|
|
|
$dispatcher = $container->getServer()->getEventDispatcher(); |
|
|
|
|
$dispatcher->addListener('OCA\DAV\Connector\Sabre::authInit', function($event) use($container) { |
|
|
|
|
if ($event instanceof SabrePluginEvent) { |
|
|
|
|
$authPlugin = $event->getServer()->getPlugin('auth'); |
|
|
|
|
if ($authPlugin instanceof Plugin) { |
|
|
|
|
$h = new DbHandler($container->getServer()->getDatabaseConnection(), |
|
|
|
|
$container->getServer()->getL10N('federation') |
|
|
|
|
); |
|
|
|
|
$authPlugin->addBackend(new FedAuth($h)); |
|
|
|
|
$server = $event->getServer(); |
|
|
|
|
if ($server instanceof Server) { |
|
|
|
|
$authPlugin = $server->getPlugin('auth'); |
|
|
|
|
if ($authPlugin instanceof Plugin) { |
|
|
|
|
$authPlugin->addBackend($container->query(FedAuth::class)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @return SyncFederationAddressBooks |
|
|
|
|
*/ |
|
|
|
|
public function getSyncService() { |
|
|
|
|
$syncService = \OC::$server->query('CardDAVSyncService'); |
|
|
|
|
$dbHandler = $this->getContainer()->query('DbHandler'); |
|
|
|
|
$discoveryService = \OC::$server->query(\OCP\OCS\IDiscoveryService::class); |
|
|
|
|
return new SyncFederationAddressBooks($dbHandler, $syncService, $discoveryService); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|