diff --git a/apps/dav/appinfo/info.xml b/apps/dav/appinfo/info.xml
index a861a6ba0c054..54afaf32a000e 100644
--- a/apps/dav/appinfo/info.xml
+++ b/apps/dav/appinfo/info.xml
@@ -22,7 +22,6 @@
OCA\DAV\Migration\FixBirthdayCalendarComponent
OCA\DAV\Migration\CalDAVRemoveEmptyValue
OCA\DAV\Migration\BuildCalendarSearchIndex
- OCA\DAV\Repair\RemoveInvalidShares
@@ -30,6 +29,7 @@
OCA\DAV\Command\CreateCalendar
OCA\DAV\Command\SyncBirthdayCalendar
OCA\DAV\Command\SyncSystemAddressBook
+ OCA\DAV\Command\RemoveInvalidShares
diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php
index 7419c5d709ce8..d15268f8c3394 100644
--- a/apps/dav/composer/composer/autoload_classmap.php
+++ b/apps/dav/composer/composer/autoload_classmap.php
@@ -64,6 +64,7 @@
'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir . '/../lib/CardDAV/Xml/Groups.php',
'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir . '/../lib/Command/CreateAddressBook.php',
'OCA\\DAV\\Command\\CreateCalendar' => $baseDir . '/../lib/Command/CreateCalendar.php',
+ 'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir . '/../lib/Command/RemoveInvalidShares.php',
'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir . '/../lib/Command/SyncBirthdayCalendar.php',
'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir . '/../lib/Command/SyncSystemAddressBook.php',
'OCA\\DAV\\Comments\\CommentNode' => $baseDir . '/../lib/Comments/CommentNode.php',
@@ -133,7 +134,6 @@
'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir . '/../lib/Migration/Version1004Date20170919104507.php',
'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir . '/../lib/Migration/Version1004Date20170924124212.php',
'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir . '/../lib/Migration/Version1004Date20170926103422.php',
- 'OCA\\DAV\\Repair\\RemoveInvalidShares' => $baseDir . '/../lib/Repair/RemoveInvalidShares.php',
'OCA\\DAV\\RootCollection' => $baseDir . '/../lib/RootCollection.php',
'OCA\\DAV\\Server' => $baseDir . '/../lib/Server.php',
'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir . '/../lib/Settings/CalDAVSettings.php',
diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php
index 9bb554eff01de..00a930ff6f710 100644
--- a/apps/dav/composer/composer/autoload_static.php
+++ b/apps/dav/composer/composer/autoload_static.php
@@ -79,6 +79,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__ . '/..' . '/../lib/CardDAV/Xml/Groups.php',
'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__ . '/..' . '/../lib/Command/CreateAddressBook.php',
'OCA\\DAV\\Command\\CreateCalendar' => __DIR__ . '/..' . '/../lib/Command/CreateCalendar.php',
+ 'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__ . '/..' . '/../lib/Command/RemoveInvalidShares.php',
'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__ . '/..' . '/../lib/Command/SyncBirthdayCalendar.php',
'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__ . '/..' . '/../lib/Command/SyncSystemAddressBook.php',
'OCA\\DAV\\Comments\\CommentNode' => __DIR__ . '/..' . '/../lib/Comments/CommentNode.php',
@@ -148,7 +149,6 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170919104507.php',
'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170924124212.php',
'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170926103422.php',
- 'OCA\\DAV\\Repair\\RemoveInvalidShares' => __DIR__ . '/..' . '/../lib/Repair/RemoveInvalidShares.php',
'OCA\\DAV\\RootCollection' => __DIR__ . '/..' . '/../lib/RootCollection.php',
'OCA\\DAV\\Server' => __DIR__ . '/..' . '/../lib/Server.php',
'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__ . '/..' . '/../lib/Settings/CalDAVSettings.php',
diff --git a/apps/dav/lib/Repair/RemoveInvalidShares.php b/apps/dav/lib/Command/RemoveInvalidShares.php
similarity index 73%
rename from apps/dav/lib/Repair/RemoveInvalidShares.php
rename to apps/dav/lib/Command/RemoveInvalidShares.php
index b69f918a57670..12a5ee43d478f 100644
--- a/apps/dav/lib/Repair/RemoveInvalidShares.php
+++ b/apps/dav/lib/Command/RemoveInvalidShares.php
@@ -1,4 +1,5 @@
*
@@ -19,58 +20,40 @@
*
*/
-namespace OCA\DAV\Repair;
+namespace OCA\DAV\Command;
use OCA\DAV\Connector\Sabre\Principal;
use OCP\IDBConnection;
-use OCP\ILogger;
-use OCP\Migration\IOutput;
-use OCP\Migration\IRepairStep;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
/**
* Class RemoveInvalidShares - removes shared calendars and addressbook which
* have no matching principal. Happened because of a bug in the calendar app.
- *
- * @package OCA\DAV\Repair
*/
-class RemoveInvalidShares implements IRepairStep {
+class RemoveInvalidShares extends Command {
/** @var IDBConnection */
private $connection;
/** @var Principal */
private $principalBackend;
- /**
- * RemoveInvalidShares constructor.
- *
- * @param IDBConnection $connection
- * @param Principal $principalBackend
- */
public function __construct(IDBConnection $connection,
Principal $principalBackend) {
+ parent::__construct();
+
$this->connection = $connection;
$this->principalBackend = $principalBackend;
}
- /**
- * Returns the step's name
- *
- * @return string
- * @since 9.1.0
- */
- public function getName() {
- return 'Remove invalid calendar and addressbook shares';
+ protected function configure() {
+ $this
+ ->setName('dav:remove-invalid-shares')
+ ->setDescription('Remove invalid dav shares');
}
- /**
- * Run repair step.
- * Must throw exception on error.
- *
- * @param IOutput $output
- * @throws \Exception in case of failure
- * @since 9.1.0
- */
- public function run(IOutput $output) {
+ protected function execute(InputInterface $input, OutputInterface $output) {
$query = $this->connection->getQueryBuilder();
$result = $query->selectDistinct('principaluri')
->from('dav_shares')
@@ -80,7 +63,6 @@ public function run(IOutput $output) {
$principaluri = $row['principaluri'];
$p = $this->principalBackend->getPrincipalByPath($principaluri);
if ($p === null) {
- $output->info(" ... for principal '$principaluri'");
$this->deleteSharesForPrincipal($principaluri);
}
}
diff --git a/apps/dav/tests/unit/Repair/RemoveInvalidSharesTest.php b/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
similarity index 86%
rename from apps/dav/tests/unit/Repair/RemoveInvalidSharesTest.php
rename to apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
index 14553740f3810..2574e4d0aecda 100644
--- a/apps/dav/tests/unit/Repair/RemoveInvalidSharesTest.php
+++ b/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
@@ -20,12 +20,14 @@
*/
-namespace OCA\DAV\Tests\Unit\Repair;
+namespace OCA\DAV\Tests\Unit\Command;
use OCA\DAV\Connector\Sabre\Principal;
-use OCA\DAV\Repair\RemoveInvalidShares;
+use OCA\DAV\Command\RemoveInvalidShares;
use OCP\Migration\IOutput;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
use Test\TestCase;
/**
@@ -57,8 +59,7 @@ public function test() {
$output = $this->createMock(IOutput::class);
$repair = new RemoveInvalidShares($db, $principal);
- $this->assertEquals("Remove invalid calendar and addressbook shares", $repair->getName());
- $repair->run($output);
+ $this->invokePrivate($repair, 'run', [$this->createMock(InputInterface::class), $this->createMock(OutputInterface::class)]);
$query = $db->getQueryBuilder();
$result = $query->select('*')->from('dav_shares')
diff --git a/lib/private/Repair.php b/lib/private/Repair.php
index 3ddcf0accec87..dcdf5c4ef0a85 100644
--- a/lib/private/Repair.php
+++ b/lib/private/Repair.php
@@ -53,6 +53,8 @@
use OC\Repair\RepairInvalidShares;
use OC\Template\JSCombiner;
use OC\Template\SCSSCacher;
+use OCA\DAV\Connector\Sabre\Principal;
+use OCA\DAV\Repair\RemoveInvalidShares;
use OCP\AppFramework\QueryException;
use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep;
@@ -167,7 +169,7 @@ public static function getRepairSteps() {
*/
public static function getExpensiveRepairSteps() {
return [
- new OldGroupMembershipShares(\OC::$server->getDatabaseConnection(), \OC::$server->getGroupManager())
+ new OldGroupMembershipShares(\OC::$server->getDatabaseConnection(), \OC::$server->getGroupManager()),
];
}