Completed
Push — master ( e2ea6d...b17745 )
by
unknown
30:23
created
apps/files_sharing/lib/Migration/Version21000Date20201223143245.php 1 patch
Indentation   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -34,37 +34,37 @@
 block discarded – undo
34 34
 use OCP\Migration\SimpleMigrationStep;
35 35
 
36 36
 class Version21000Date20201223143245 extends SimpleMigrationStep {
37
-	public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
38
-		/** @var ISchemaWrapper $schema */
39
-		$schema = $schemaClosure();
37
+    public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
38
+        /** @var ISchemaWrapper $schema */
39
+        $schema = $schemaClosure();
40 40
 
41
-		if ($schema->hasTable('share_external')) {
42
-			$table = $schema->getTable('share_external');
43
-			$changed = false;
44
-			if (!$table->hasColumn('parent')) {
45
-				$table->addColumn('parent', Types::BIGINT, [
46
-					'notnull' => false,
47
-					'default' => -1,
48
-				]);
49
-				$changed = true;
50
-			}
51
-			if (!$table->hasColumn('share_type')) {
52
-				$table->addColumn('share_type', Types::INTEGER, [
53
-					'notnull' => false,
54
-					'length' => 4,
55
-				]);
56
-				$changed = true;
57
-			}
58
-			if ($table->hasColumn('lastscan')) {
59
-				$table->dropColumn('lastscan');
60
-				$changed = true;
61
-			}
41
+        if ($schema->hasTable('share_external')) {
42
+            $table = $schema->getTable('share_external');
43
+            $changed = false;
44
+            if (!$table->hasColumn('parent')) {
45
+                $table->addColumn('parent', Types::BIGINT, [
46
+                    'notnull' => false,
47
+                    'default' => -1,
48
+                ]);
49
+                $changed = true;
50
+            }
51
+            if (!$table->hasColumn('share_type')) {
52
+                $table->addColumn('share_type', Types::INTEGER, [
53
+                    'notnull' => false,
54
+                    'length' => 4,
55
+                ]);
56
+                $changed = true;
57
+            }
58
+            if ($table->hasColumn('lastscan')) {
59
+                $table->dropColumn('lastscan');
60
+                $changed = true;
61
+            }
62 62
 
63
-			if ($changed) {
64
-				return $schema;
65
-			}
66
-		}
63
+            if ($changed) {
64
+                return $schema;
65
+            }
66
+        }
67 67
 
68
-		return null;
69
-	}
68
+        return null;
69
+    }
70 70
 }
Please login to merge, or discard this patch.
apps/dav/lib/Migration/BuildSocialSearchIndex.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -74,7 +74,7 @@
 block discarded – undo
74 74
 		$query->select($query->func()->max('cardid'))
75 75
 			->from('cards_properties')
76 76
 			->where($query->expr()->eq('name', $query->createNamedParameter('X-SOCIALPROFILE')));
77
-		$maxId = (int)$query->execute()->fetchOne();
77
+		$maxId = (int) $query->execute()->fetchOne();
78 78
 
79 79
 		if ($maxId === 0) {
80 80
 			return;
Please login to merge, or discard this patch.
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -13,52 +13,52 @@
 block discarded – undo
13 13
 
14 14
 class BuildSocialSearchIndex implements IRepairStep {
15 15
 
16
-	/**
17
-	 * @param IDBConnection $db
18
-	 * @param IJobList $jobList
19
-	 * @param IConfig $config
20
-	 */
21
-	public function __construct(
22
-		private IDBConnection $db,
23
-		private IJobList $jobList,
24
-		private IConfig $config,
25
-	) {
26
-	}
16
+    /**
17
+     * @param IDBConnection $db
18
+     * @param IJobList $jobList
19
+     * @param IConfig $config
20
+     */
21
+    public function __construct(
22
+        private IDBConnection $db,
23
+        private IJobList $jobList,
24
+        private IConfig $config,
25
+    ) {
26
+    }
27 27
 
28
-	/**
29
-	 * @return string
30
-	 */
31
-	public function getName() {
32
-		return 'Register building of social profile search index as background job';
33
-	}
28
+    /**
29
+     * @return string
30
+     */
31
+    public function getName() {
32
+        return 'Register building of social profile search index as background job';
33
+    }
34 34
 
35
-	/**
36
-	 * @param IOutput $output
37
-	 */
38
-	public function run(IOutput $output) {
39
-		// only run once
40
-		if ($this->config->getAppValue('dav', 'builtSocialSearchIndex') === 'yes') {
41
-			$output->info('Repair step already executed');
42
-			return;
43
-		}
35
+    /**
36
+     * @param IOutput $output
37
+     */
38
+    public function run(IOutput $output) {
39
+        // only run once
40
+        if ($this->config->getAppValue('dav', 'builtSocialSearchIndex') === 'yes') {
41
+            $output->info('Repair step already executed');
42
+            return;
43
+        }
44 44
 
45
-		$query = $this->db->getQueryBuilder();
46
-		$query->select($query->func()->max('cardid'))
47
-			->from('cards_properties')
48
-			->where($query->expr()->eq('name', $query->createNamedParameter('X-SOCIALPROFILE')));
49
-		$maxId = (int)$query->execute()->fetchOne();
45
+        $query = $this->db->getQueryBuilder();
46
+        $query->select($query->func()->max('cardid'))
47
+            ->from('cards_properties')
48
+            ->where($query->expr()->eq('name', $query->createNamedParameter('X-SOCIALPROFILE')));
49
+        $maxId = (int)$query->execute()->fetchOne();
50 50
 
51
-		if ($maxId === 0) {
52
-			return;
53
-		}
51
+        if ($maxId === 0) {
52
+            return;
53
+        }
54 54
 
55
-		$output->info('Add background job');
56
-		$this->jobList->add(BuildSocialSearchIndexBackgroundJob::class, [
57
-			'offset' => 0,
58
-			'stopAt' => $maxId
59
-		]);
55
+        $output->info('Add background job');
56
+        $this->jobList->add(BuildSocialSearchIndexBackgroundJob::class, [
57
+            'offset' => 0,
58
+            'stopAt' => $maxId
59
+        ]);
60 60
 
61
-		// no need to redo the repair during next upgrade
62
-		$this->config->setAppValue('dav', 'builtSocialSearchIndex', 'yes');
63
-	}
61
+        // no need to redo the repair during next upgrade
62
+        $this->config->setAppValue('dav', 'builtSocialSearchIndex', 'yes');
63
+    }
64 64
 }
Please login to merge, or discard this patch.
lib/private/DB/SQLiteSessionInit.php 2 patches
Indentation   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -31,42 +31,42 @@
 block discarded – undo
31 31
 use Doctrine\DBAL\Events;
32 32
 
33 33
 class SQLiteSessionInit implements EventSubscriber {
34
-	/**
35
-	 * @var bool
36
-	 */
37
-	private $caseSensitiveLike;
34
+    /**
35
+     * @var bool
36
+     */
37
+    private $caseSensitiveLike;
38 38
 
39
-	/**
40
-	 * @var string
41
-	 */
42
-	private $journalMode;
39
+    /**
40
+     * @var string
41
+     */
42
+    private $journalMode;
43 43
 
44
-	/**
45
-	 * Configure case sensitive like for each connection
46
-	 *
47
-	 * @param bool $caseSensitiveLike
48
-	 * @param string $journalMode
49
-	 */
50
-	public function __construct($caseSensitiveLike, $journalMode) {
51
-		$this->caseSensitiveLike = $caseSensitiveLike;
52
-		$this->journalMode = $journalMode;
53
-	}
44
+    /**
45
+     * Configure case sensitive like for each connection
46
+     *
47
+     * @param bool $caseSensitiveLike
48
+     * @param string $journalMode
49
+     */
50
+    public function __construct($caseSensitiveLike, $journalMode) {
51
+        $this->caseSensitiveLike = $caseSensitiveLike;
52
+        $this->journalMode = $journalMode;
53
+    }
54 54
 
55
-	/**
56
-	 * @param ConnectionEventArgs $args
57
-	 * @return void
58
-	 */
59
-	public function postConnect(ConnectionEventArgs $args) {
60
-		$sensitive = $this->caseSensitiveLike ? 'true' : 'false';
61
-		$args->getConnection()->executeUpdate('PRAGMA case_sensitive_like = ' . $sensitive);
62
-		$args->getConnection()->executeUpdate('PRAGMA journal_mode = ' . $this->journalMode);
63
-		/** @var \Doctrine\DBAL\Driver\PDO\Connection $connection */
64
-		$connection = $args->getConnection()->getWrappedConnection();
65
-		$pdo = $connection->getWrappedConnection();
66
-		$pdo->sqliteCreateFunction('md5', 'md5', 1);
67
-	}
55
+    /**
56
+     * @param ConnectionEventArgs $args
57
+     * @return void
58
+     */
59
+    public function postConnect(ConnectionEventArgs $args) {
60
+        $sensitive = $this->caseSensitiveLike ? 'true' : 'false';
61
+        $args->getConnection()->executeUpdate('PRAGMA case_sensitive_like = ' . $sensitive);
62
+        $args->getConnection()->executeUpdate('PRAGMA journal_mode = ' . $this->journalMode);
63
+        /** @var \Doctrine\DBAL\Driver\PDO\Connection $connection */
64
+        $connection = $args->getConnection()->getWrappedConnection();
65
+        $pdo = $connection->getWrappedConnection();
66
+        $pdo->sqliteCreateFunction('md5', 'md5', 1);
67
+    }
68 68
 
69
-	public function getSubscribedEvents() {
70
-		return [Events::postConnect];
71
-	}
69
+    public function getSubscribedEvents() {
70
+        return [Events::postConnect];
71
+    }
72 72
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -58,8 +58,8 @@
 block discarded – undo
58 58
 	 */
59 59
 	public function postConnect(ConnectionEventArgs $args) {
60 60
 		$sensitive = $this->caseSensitiveLike ? 'true' : 'false';
61
-		$args->getConnection()->executeUpdate('PRAGMA case_sensitive_like = ' . $sensitive);
62
-		$args->getConnection()->executeUpdate('PRAGMA journal_mode = ' . $this->journalMode);
61
+		$args->getConnection()->executeUpdate('PRAGMA case_sensitive_like = '.$sensitive);
62
+		$args->getConnection()->executeUpdate('PRAGMA journal_mode = '.$this->journalMode);
63 63
 		/** @var \Doctrine\DBAL\Driver\PDO\Connection $connection */
64 64
 		$connection = $args->getConnection()->getWrappedConnection();
65 65
 		$pdo = $connection->getWrappedConnection();
Please login to merge, or discard this patch.
core/Migrations/Version21000Date20210119195004.php 1 patch
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -35,21 +35,21 @@
 block discarded – undo
35 35
  * Auto-generated migration step: Please modify to your needs!
36 36
  */
37 37
 class Version21000Date20210119195004 extends SimpleMigrationStep {
38
-	/**
39
-	 * @param IOutput $output
40
-	 * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
41
-	 * @param array $options
42
-	 * @return null|ISchemaWrapper
43
-	 */
44
-	public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
45
-		/** @var ISchemaWrapper $schema */
46
-		$schema = $schemaClosure();
38
+    /**
39
+     * @param IOutput $output
40
+     * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
41
+     * @param array $options
42
+     * @return null|ISchemaWrapper
43
+     */
44
+    public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
45
+        /** @var ISchemaWrapper $schema */
46
+        $schema = $schemaClosure();
47 47
 
48
-		$table = $schema->getTable('authtoken');
49
-		if ($table->hasIndex('authtoken_version_index')) {
50
-			$table->dropIndex('authtoken_version_index');
51
-		}
48
+        $table = $schema->getTable('authtoken');
49
+        if ($table->hasIndex('authtoken_version_index')) {
50
+            $table->dropIndex('authtoken_version_index');
51
+        }
52 52
 
53
-		return $schema;
54
-	}
53
+        return $schema;
54
+    }
55 55
 }
Please login to merge, or discard this patch.
core/Migrations/Version14000Date20180518120534.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -31,24 +31,24 @@
 block discarded – undo
31 31
 use OCP\Migration\SimpleMigrationStep;
32 32
 
33 33
 class Version14000Date20180518120534 extends SimpleMigrationStep {
34
-	public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
35
-		/** @var ISchemaWrapper $schema */
36
-		$schema = $schemaClosure();
34
+    public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
35
+        /** @var ISchemaWrapper $schema */
36
+        $schema = $schemaClosure();
37 37
 
38
-		$table = $schema->getTable('authtoken');
39
-		$table->addColumn('private_key', 'text', [
40
-			'notnull' => false,
41
-		]);
42
-		$table->addColumn('public_key', 'text', [
43
-			'notnull' => false,
44
-		]);
45
-		$table->addColumn('version', 'smallint', [
46
-			'notnull' => true,
47
-			'default' => 1,
48
-			'unsigned' => true,
49
-		]);
50
-		$table->addIndex(['uid'], 'authtoken_uid_index');
38
+        $table = $schema->getTable('authtoken');
39
+        $table->addColumn('private_key', 'text', [
40
+            'notnull' => false,
41
+        ]);
42
+        $table->addColumn('public_key', 'text', [
43
+            'notnull' => false,
44
+        ]);
45
+        $table->addColumn('version', 'smallint', [
46
+            'notnull' => true,
47
+            'default' => 1,
48
+            'unsigned' => true,
49
+        ]);
50
+        $table->addIndex(['uid'], 'authtoken_uid_index');
51 51
 
52
-		return $schema;
53
-	}
52
+        return $schema;
53
+    }
54 54
 }
Please login to merge, or discard this patch.
lib/private/Repair/RepairDavShares.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -74,7 +74,7 @@  discard block
 block discarded – undo
74 74
 		$qb = $this->dbc->getQueryBuilder();
75 75
 		$qb->select(['id', 'principaluri'])
76 76
 			->from('dav_shares')
77
-			->where($qb->expr()->like('principaluri', $qb->createNamedParameter(self::GROUP_PRINCIPAL_PREFIX . '%')));
77
+			->where($qb->expr()->like('principaluri', $qb->createNamedParameter(self::GROUP_PRINCIPAL_PREFIX.'%')));
78 78
 
79 79
 		$updateQuery = $this->dbc->getQueryBuilder();
80 80
 		$updateQuery->update('dav_shares')
@@ -100,7 +100,7 @@  discard block
 block discarded – undo
100 100
 			// + AND there are no ambivalent groups
101 101
 
102 102
 			try {
103
-				$fixedPrincipal = self::GROUP_PRINCIPAL_PREFIX . $encodedGid;
103
+				$fixedPrincipal = self::GROUP_PRINCIPAL_PREFIX.$encodedGid;
104 104
 				$logParameters = [
105 105
 					'app' => 'core',
106 106
 					'id' => $share['id'],
Please login to merge, or discard this patch.
Indentation   +76 added lines, -76 removed lines patch added patch discarded remove patch
@@ -21,89 +21,89 @@
 block discarded – undo
21 21
 use function urlencode;
22 22
 
23 23
 class RepairDavShares implements IRepairStep {
24
-	protected const GROUP_PRINCIPAL_PREFIX = 'principals/groups/';
24
+    protected const GROUP_PRINCIPAL_PREFIX = 'principals/groups/';
25 25
 
26
-	/** @var bool */
27
-	private $hintInvalidShares = false;
26
+    /** @var bool */
27
+    private $hintInvalidShares = false;
28 28
 
29
-	public function __construct(
30
-		private IConfig $config,
31
-		private IDBConnection $dbc,
32
-		private IGroupManager $groupManager,
33
-		private LoggerInterface $logger,
34
-	) {
35
-	}
29
+    public function __construct(
30
+        private IConfig $config,
31
+        private IDBConnection $dbc,
32
+        private IGroupManager $groupManager,
33
+        private LoggerInterface $logger,
34
+    ) {
35
+    }
36 36
 
37
-	/**
38
-	 * @inheritDoc
39
-	 */
40
-	public function getName() {
41
-		return 'Repair DAV shares';
42
-	}
37
+    /**
38
+     * @inheritDoc
39
+     */
40
+    public function getName() {
41
+        return 'Repair DAV shares';
42
+    }
43 43
 
44
-	protected function repairUnencodedGroupShares() {
45
-		$qb = $this->dbc->getQueryBuilder();
46
-		$qb->select(['id', 'principaluri'])
47
-			->from('dav_shares')
48
-			->where($qb->expr()->like('principaluri', $qb->createNamedParameter(self::GROUP_PRINCIPAL_PREFIX . '%')));
44
+    protected function repairUnencodedGroupShares() {
45
+        $qb = $this->dbc->getQueryBuilder();
46
+        $qb->select(['id', 'principaluri'])
47
+            ->from('dav_shares')
48
+            ->where($qb->expr()->like('principaluri', $qb->createNamedParameter(self::GROUP_PRINCIPAL_PREFIX . '%')));
49 49
 
50
-		$updateQuery = $this->dbc->getQueryBuilder();
51
-		$updateQuery->update('dav_shares')
52
-			->set('principaluri', $updateQuery->createParameter('updatedPrincipalUri'))
53
-			->where($updateQuery->expr()->eq('id', $updateQuery->createParameter('shareId')));
50
+        $updateQuery = $this->dbc->getQueryBuilder();
51
+        $updateQuery->update('dav_shares')
52
+            ->set('principaluri', $updateQuery->createParameter('updatedPrincipalUri'))
53
+            ->where($updateQuery->expr()->eq('id', $updateQuery->createParameter('shareId')));
54 54
 
55
-		$statement = $qb->execute();
56
-		while ($share = $statement->fetch()) {
57
-			$gid = substr($share['principaluri'], strlen(self::GROUP_PRINCIPAL_PREFIX));
58
-			$decodedGid = urldecode($gid);
59
-			$encodedGid = urlencode($gid);
60
-			if ($gid === $encodedGid
61
-				|| !$this->groupManager->groupExists($gid)
62
-				|| ($gid !== $decodedGid && $this->groupManager->groupExists($decodedGid))
63
-			) {
64
-				$this->hintInvalidShares = $this->hintInvalidShares || $gid !== $encodedGid;
65
-				continue;
66
-			}
55
+        $statement = $qb->execute();
56
+        while ($share = $statement->fetch()) {
57
+            $gid = substr($share['principaluri'], strlen(self::GROUP_PRINCIPAL_PREFIX));
58
+            $decodedGid = urldecode($gid);
59
+            $encodedGid = urlencode($gid);
60
+            if ($gid === $encodedGid
61
+                || !$this->groupManager->groupExists($gid)
62
+                || ($gid !== $decodedGid && $this->groupManager->groupExists($decodedGid))
63
+            ) {
64
+                $this->hintInvalidShares = $this->hintInvalidShares || $gid !== $encodedGid;
65
+                continue;
66
+            }
67 67
 
68
-			// Repair when
69
-			// + the group name needs encoding
70
-			// + AND it is not encoded yet
71
-			// + AND there are no ambivalent groups
68
+            // Repair when
69
+            // + the group name needs encoding
70
+            // + AND it is not encoded yet
71
+            // + AND there are no ambivalent groups
72 72
 
73
-			try {
74
-				$fixedPrincipal = self::GROUP_PRINCIPAL_PREFIX . $encodedGid;
75
-				$logParameters = [
76
-					'app' => 'core',
77
-					'id' => $share['id'],
78
-					'old' => $share['principaluri'],
79
-					'new' => $fixedPrincipal,
80
-				];
81
-				$updateQuery
82
-					->setParameter('updatedPrincipalUri', $fixedPrincipal)
83
-					->setParameter('shareId', $share['id'])
84
-					->execute();
85
-				$this->logger->info('Repaired principal for dav share {id} from {old} to {new}', $logParameters);
86
-			} catch (Exception $e) {
87
-				$logParameters['message'] = $e->getMessage();
88
-				$logParameters['exception'] = $e;
89
-				$this->logger->info('Could not repair principal for dav share {id} from {old} to {new}: {message}', $logParameters);
90
-			}
91
-		}
92
-		return true;
93
-	}
73
+            try {
74
+                $fixedPrincipal = self::GROUP_PRINCIPAL_PREFIX . $encodedGid;
75
+                $logParameters = [
76
+                    'app' => 'core',
77
+                    'id' => $share['id'],
78
+                    'old' => $share['principaluri'],
79
+                    'new' => $fixedPrincipal,
80
+                ];
81
+                $updateQuery
82
+                    ->setParameter('updatedPrincipalUri', $fixedPrincipal)
83
+                    ->setParameter('shareId', $share['id'])
84
+                    ->execute();
85
+                $this->logger->info('Repaired principal for dav share {id} from {old} to {new}', $logParameters);
86
+            } catch (Exception $e) {
87
+                $logParameters['message'] = $e->getMessage();
88
+                $logParameters['exception'] = $e;
89
+                $this->logger->info('Could not repair principal for dav share {id} from {old} to {new}: {message}', $logParameters);
90
+            }
91
+        }
92
+        return true;
93
+    }
94 94
 
95
-	/**
96
-	 * @inheritDoc
97
-	 */
98
-	public function run(IOutput $output) {
99
-		$versionFromBeforeUpdate = $this->config->getSystemValueString('version', '0.0.0');
100
-		if (version_compare($versionFromBeforeUpdate, '20.0.8', '<')
101
-			&& $this->repairUnencodedGroupShares()
102
-		) {
103
-			$output->info('Repaired DAV group shares');
104
-			if ($this->hintInvalidShares) {
105
-				$output->info('Invalid shares might be left in the database, running "occ dav:remove-invalid-shares" can remove them.');
106
-			}
107
-		}
108
-	}
95
+    /**
96
+     * @inheritDoc
97
+     */
98
+    public function run(IOutput $output) {
99
+        $versionFromBeforeUpdate = $this->config->getSystemValueString('version', '0.0.0');
100
+        if (version_compare($versionFromBeforeUpdate, '20.0.8', '<')
101
+            && $this->repairUnencodedGroupShares()
102
+        ) {
103
+            $output->info('Repaired DAV group shares');
104
+            if ($this->hintInvalidShares) {
105
+                $output->info('Invalid shares might be left in the database, running "occ dav:remove-invalid-shares" can remove them.');
106
+            }
107
+        }
108
+    }
109 109
 }
Please login to merge, or discard this patch.
apps/dav/lib/Listener/CalendarContactInteractionListener.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -101,7 +101,7 @@
 block discarded – undo
101 101
 						}
102 102
 					}
103 103
 				} catch (Throwable $e) {
104
-					$this->logger->warning('Could not read calendar data for interaction events: ' . $e->getMessage(), [
104
+					$this->logger->warning('Could not read calendar data for interaction events: '.$e->getMessage(), [
105 105
 						'exception' => $e,
106 106
 					]);
107 107
 				}
Please login to merge, or discard this patch.
Indentation   +109 added lines, -109 removed lines patch added patch discarded remove patch
@@ -30,113 +30,113 @@
 block discarded – undo
30 30
 
31 31
 /** @template-implements IEventListener<CalendarObjectCreatedEvent|CalendarObjectUpdatedEvent|CalendarShareUpdatedEvent> */
32 32
 class CalendarContactInteractionListener implements IEventListener {
33
-	private const URI_USERS = 'principals/users/';
34
-
35
-	public function __construct(
36
-		private IEventDispatcher $dispatcher,
37
-		private IUserSession $userSession,
38
-		private Principal $principalConnector,
39
-		private IMailer $mailer,
40
-		private LoggerInterface $logger,
41
-	) {
42
-	}
43
-
44
-	public function handle(Event $event): void {
45
-		if (($user = $this->userSession->getUser()) === null) {
46
-			// Without user context we can't do anything
47
-			return;
48
-		}
49
-
50
-		if ($event instanceof CalendarObjectCreatedEvent || $event instanceof CalendarObjectUpdatedEvent) {
51
-			// users: href => principal:principals/users/admin
52
-			foreach ($event->getShares() as $share) {
53
-				if (!isset($share['href'])) {
54
-					continue;
55
-				}
56
-				$this->emitFromUri($share['href'], $user);
57
-			}
58
-
59
-			// emit interaction for email attendees as well
60
-			if (isset($event->getObjectData()['calendardata'])) {
61
-				try {
62
-					$calendar = Reader::read($event->getObjectData()['calendardata']);
63
-					if ($calendar->VEVENT) {
64
-						foreach ($calendar->VEVENT as $calendarEvent) {
65
-							$this->emitFromObject($calendarEvent, $user);
66
-						}
67
-					}
68
-				} catch (Throwable $e) {
69
-					$this->logger->warning('Could not read calendar data for interaction events: ' . $e->getMessage(), [
70
-						'exception' => $e,
71
-					]);
72
-				}
73
-			}
74
-		}
75
-
76
-		if ($event instanceof CalendarShareUpdatedEvent && !empty($event->getAdded())) {
77
-			// group: href => principal:principals/groups/admin
78
-			// users: href => principal:principals/users/admin
79
-			foreach ($event->getAdded() as $added) {
80
-				if (!isset($added['href'])) {
81
-					// Nothing to work with
82
-					continue;
83
-				}
84
-				$this->emitFromUri($added['href'], $user);
85
-			}
86
-		}
87
-	}
88
-
89
-	private function emitFromUri(string $uri, IUser $user): void {
90
-		$principal = $this->principalConnector->findByUri(
91
-			$uri,
92
-			$this->principalConnector->getPrincipalPrefix()
93
-		);
94
-		if ($principal === null) {
95
-			// Invalid principal
96
-			return;
97
-		}
98
-		if (!str_starts_with($principal, self::URI_USERS)) {
99
-			// Not a user principal
100
-			return;
101
-		}
102
-
103
-		$uid = substr($principal, strlen(self::URI_USERS));
104
-		$this->dispatcher->dispatchTyped(
105
-			(new ContactInteractedWithEvent($user))->setUid($uid)
106
-		);
107
-	}
108
-
109
-	private function emitFromObject(VEvent $vevent, IUser $user): void {
110
-		if (!$vevent->ATTENDEE) {
111
-			// Nothing left to do
112
-			return;
113
-		}
114
-
115
-		foreach ($vevent->ATTENDEE as $attendee) {
116
-			if (!($attendee instanceof Property)) {
117
-				continue;
118
-			}
119
-
120
-			$cuType = $attendee->offsetGet('CUTYPE');
121
-			if ($cuType instanceof Parameter && $cuType->getValue() !== 'INDIVIDUAL') {
122
-				// Don't care about those
123
-				continue;
124
-			}
125
-
126
-			$mailTo = $attendee->getValue();
127
-			if (!str_starts_with($mailTo, 'mailto:')) {
128
-				// Doesn't look like an email
129
-				continue;
130
-			}
131
-			$email = substr($mailTo, strlen('mailto:'));
132
-			if (!$this->mailer->validateMailAddress($email)) {
133
-				// This really isn't a valid email
134
-				continue;
135
-			}
136
-
137
-			$this->dispatcher->dispatchTyped(
138
-				(new ContactInteractedWithEvent($user))->setEmail($email)
139
-			);
140
-		}
141
-	}
33
+    private const URI_USERS = 'principals/users/';
34
+
35
+    public function __construct(
36
+        private IEventDispatcher $dispatcher,
37
+        private IUserSession $userSession,
38
+        private Principal $principalConnector,
39
+        private IMailer $mailer,
40
+        private LoggerInterface $logger,
41
+    ) {
42
+    }
43
+
44
+    public function handle(Event $event): void {
45
+        if (($user = $this->userSession->getUser()) === null) {
46
+            // Without user context we can't do anything
47
+            return;
48
+        }
49
+
50
+        if ($event instanceof CalendarObjectCreatedEvent || $event instanceof CalendarObjectUpdatedEvent) {
51
+            // users: href => principal:principals/users/admin
52
+            foreach ($event->getShares() as $share) {
53
+                if (!isset($share['href'])) {
54
+                    continue;
55
+                }
56
+                $this->emitFromUri($share['href'], $user);
57
+            }
58
+
59
+            // emit interaction for email attendees as well
60
+            if (isset($event->getObjectData()['calendardata'])) {
61
+                try {
62
+                    $calendar = Reader::read($event->getObjectData()['calendardata']);
63
+                    if ($calendar->VEVENT) {
64
+                        foreach ($calendar->VEVENT as $calendarEvent) {
65
+                            $this->emitFromObject($calendarEvent, $user);
66
+                        }
67
+                    }
68
+                } catch (Throwable $e) {
69
+                    $this->logger->warning('Could not read calendar data for interaction events: ' . $e->getMessage(), [
70
+                        'exception' => $e,
71
+                    ]);
72
+                }
73
+            }
74
+        }
75
+
76
+        if ($event instanceof CalendarShareUpdatedEvent && !empty($event->getAdded())) {
77
+            // group: href => principal:principals/groups/admin
78
+            // users: href => principal:principals/users/admin
79
+            foreach ($event->getAdded() as $added) {
80
+                if (!isset($added['href'])) {
81
+                    // Nothing to work with
82
+                    continue;
83
+                }
84
+                $this->emitFromUri($added['href'], $user);
85
+            }
86
+        }
87
+    }
88
+
89
+    private function emitFromUri(string $uri, IUser $user): void {
90
+        $principal = $this->principalConnector->findByUri(
91
+            $uri,
92
+            $this->principalConnector->getPrincipalPrefix()
93
+        );
94
+        if ($principal === null) {
95
+            // Invalid principal
96
+            return;
97
+        }
98
+        if (!str_starts_with($principal, self::URI_USERS)) {
99
+            // Not a user principal
100
+            return;
101
+        }
102
+
103
+        $uid = substr($principal, strlen(self::URI_USERS));
104
+        $this->dispatcher->dispatchTyped(
105
+            (new ContactInteractedWithEvent($user))->setUid($uid)
106
+        );
107
+    }
108
+
109
+    private function emitFromObject(VEvent $vevent, IUser $user): void {
110
+        if (!$vevent->ATTENDEE) {
111
+            // Nothing left to do
112
+            return;
113
+        }
114
+
115
+        foreach ($vevent->ATTENDEE as $attendee) {
116
+            if (!($attendee instanceof Property)) {
117
+                continue;
118
+            }
119
+
120
+            $cuType = $attendee->offsetGet('CUTYPE');
121
+            if ($cuType instanceof Parameter && $cuType->getValue() !== 'INDIVIDUAL') {
122
+                // Don't care about those
123
+                continue;
124
+            }
125
+
126
+            $mailTo = $attendee->getValue();
127
+            if (!str_starts_with($mailTo, 'mailto:')) {
128
+                // Doesn't look like an email
129
+                continue;
130
+            }
131
+            $email = substr($mailTo, strlen('mailto:'));
132
+            if (!$this->mailer->validateMailAddress($email)) {
133
+                // This really isn't a valid email
134
+                continue;
135
+            }
136
+
137
+            $this->dispatcher->dispatchTyped(
138
+                (new ContactInteractedWithEvent($user))->setEmail($email)
139
+            );
140
+        }
141
+    }
142 142
 }
Please login to merge, or discard this patch.
lib/private/AppFramework/Bootstrap/ServiceRegistration.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -30,24 +30,24 @@
 block discarded – undo
30 30
  * @template T
31 31
  */
32 32
 class ServiceRegistration extends ARegistration {
33
-	/**
34
-	 * @var string
35
-	 * @psalm-var class-string<T>
36
-	 */
37
-	private $service;
33
+    /**
34
+     * @var string
35
+     * @psalm-var class-string<T>
36
+     */
37
+    private $service;
38 38
 
39
-	/**
40
-	 * @psalm-param class-string<T> $service
41
-	 */
42
-	public function __construct(string $appId, string $service) {
43
-		parent::__construct($appId);
44
-		$this->service = $service;
45
-	}
39
+    /**
40
+     * @psalm-param class-string<T> $service
41
+     */
42
+    public function __construct(string $appId, string $service) {
43
+        parent::__construct($appId);
44
+        $this->service = $service;
45
+    }
46 46
 
47
-	/**
48
-	 * @psalm-return class-string<T>
49
-	 */
50
-	public function getService(): string {
51
-		return $this->service;
52
-	}
47
+    /**
48
+     * @psalm-return class-string<T>
49
+     */
50
+    public function getService(): string {
51
+        return $this->service;
52
+    }
53 53
 }
Please login to merge, or discard this patch.
lib/private/Preview/WebP.php 2 patches
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -29,14 +29,14 @@
 block discarded – undo
29 29
 use OCP\Files\FileInfo;
30 30
 
31 31
 class WebP extends Image {
32
-	/**
33
-	 * {@inheritDoc}
34
-	 */
35
-	public function getMimeType(): string {
36
-		return '/image\/webp/';
37
-	}
32
+    /**
33
+     * {@inheritDoc}
34
+     */
35
+    public function getMimeType(): string {
36
+        return '/image\/webp/';
37
+    }
38 38
 
39
-	public function isAvailable(FileInfo $file): bool {
40
-		return (bool)(imagetypes() & IMG_WEBP);
41
-	}
39
+    public function isAvailable(FileInfo $file): bool {
40
+        return (bool)(imagetypes() & IMG_WEBP);
41
+    }
42 42
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -37,6 +37,6 @@
 block discarded – undo
37 37
 	}
38 38
 
39 39
 	public function isAvailable(FileInfo $file): bool {
40
-		return (bool)(imagetypes() & IMG_WEBP);
40
+		return (bool) (imagetypes() & IMG_WEBP);
41 41
 	}
42 42
 }
Please login to merge, or discard this patch.