Passed
Push — master ( ae19cb...d3647d )
by Roeland
15:17 queued 10s
created
lib/private/Share20/ProviderFactory.php 1 patch
Indentation   +297 added lines, -297 removed lines patch added patch discarded remove patch
@@ -55,310 +55,310 @@
 block discarded – undo
55 55
  */
56 56
 class ProviderFactory implements IProviderFactory {
57 57
 
58
-	/** @var IServerContainer */
59
-	private $serverContainer;
60
-	/** @var DefaultShareProvider */
61
-	private $defaultProvider = null;
62
-	/** @var FederatedShareProvider */
63
-	private $federatedProvider = null;
64
-	/** @var  ShareByMailProvider */
65
-	private $shareByMailProvider;
66
-	/** @var  \OCA\Circles\ShareByCircleProvider */
67
-	private $shareByCircleProvider = null;
68
-	/** @var bool */
69
-	private $circlesAreNotAvailable = false;
70
-	/** @var \OCA\Talk\Share\RoomShareProvider */
71
-	private $roomShareProvider = null;
72
-
73
-	private $registeredShareProviders = [];
74
-
75
-	private $shareProviders = [];
76
-
77
-	/**
78
-	 * IProviderFactory constructor.
79
-	 *
80
-	 * @param IServerContainer $serverContainer
81
-	 */
82
-	public function __construct(IServerContainer $serverContainer) {
83
-		$this->serverContainer = $serverContainer;
84
-	}
85
-
86
-	public function registerProvider(string $shareProviderClass): void {
87
-		$this->registeredShareProviders[] = $shareProviderClass;
88
-	}
89
-
90
-	/**
91
-	 * Create the default share provider.
92
-	 *
93
-	 * @return DefaultShareProvider
94
-	 */
95
-	protected function defaultShareProvider() {
96
-		if ($this->defaultProvider === null) {
97
-			$this->defaultProvider = new DefaultShareProvider(
98
-				$this->serverContainer->getDatabaseConnection(),
99
-				$this->serverContainer->getUserManager(),
100
-				$this->serverContainer->getGroupManager(),
101
-				$this->serverContainer->getLazyRootFolder(),
102
-				$this->serverContainer->getMailer(),
103
-				$this->serverContainer->query(Defaults::class),
104
-				$this->serverContainer->getL10NFactory(),
105
-				$this->serverContainer->getURLGenerator(),
106
-				$this->serverContainer->getConfig()
107
-			);
108
-		}
109
-
110
-		return $this->defaultProvider;
111
-	}
112
-
113
-	/**
114
-	 * Create the federated share provider
115
-	 *
116
-	 * @return FederatedShareProvider
117
-	 */
118
-	protected function federatedShareProvider() {
119
-		if ($this->federatedProvider === null) {
120
-			/*
58
+    /** @var IServerContainer */
59
+    private $serverContainer;
60
+    /** @var DefaultShareProvider */
61
+    private $defaultProvider = null;
62
+    /** @var FederatedShareProvider */
63
+    private $federatedProvider = null;
64
+    /** @var  ShareByMailProvider */
65
+    private $shareByMailProvider;
66
+    /** @var  \OCA\Circles\ShareByCircleProvider */
67
+    private $shareByCircleProvider = null;
68
+    /** @var bool */
69
+    private $circlesAreNotAvailable = false;
70
+    /** @var \OCA\Talk\Share\RoomShareProvider */
71
+    private $roomShareProvider = null;
72
+
73
+    private $registeredShareProviders = [];
74
+
75
+    private $shareProviders = [];
76
+
77
+    /**
78
+     * IProviderFactory constructor.
79
+     *
80
+     * @param IServerContainer $serverContainer
81
+     */
82
+    public function __construct(IServerContainer $serverContainer) {
83
+        $this->serverContainer = $serverContainer;
84
+    }
85
+
86
+    public function registerProvider(string $shareProviderClass): void {
87
+        $this->registeredShareProviders[] = $shareProviderClass;
88
+    }
89
+
90
+    /**
91
+     * Create the default share provider.
92
+     *
93
+     * @return DefaultShareProvider
94
+     */
95
+    protected function defaultShareProvider() {
96
+        if ($this->defaultProvider === null) {
97
+            $this->defaultProvider = new DefaultShareProvider(
98
+                $this->serverContainer->getDatabaseConnection(),
99
+                $this->serverContainer->getUserManager(),
100
+                $this->serverContainer->getGroupManager(),
101
+                $this->serverContainer->getLazyRootFolder(),
102
+                $this->serverContainer->getMailer(),
103
+                $this->serverContainer->query(Defaults::class),
104
+                $this->serverContainer->getL10NFactory(),
105
+                $this->serverContainer->getURLGenerator(),
106
+                $this->serverContainer->getConfig()
107
+            );
108
+        }
109
+
110
+        return $this->defaultProvider;
111
+    }
112
+
113
+    /**
114
+     * Create the federated share provider
115
+     *
116
+     * @return FederatedShareProvider
117
+     */
118
+    protected function federatedShareProvider() {
119
+        if ($this->federatedProvider === null) {
120
+            /*
121 121
 			 * Check if the app is enabled
122 122
 			 */
123
-			$appManager = $this->serverContainer->getAppManager();
124
-			if (!$appManager->isEnabledForUser('federatedfilesharing')) {
125
-				return null;
126
-			}
123
+            $appManager = $this->serverContainer->getAppManager();
124
+            if (!$appManager->isEnabledForUser('federatedfilesharing')) {
125
+                return null;
126
+            }
127 127
 
128
-			/*
128
+            /*
129 129
 			 * TODO: add factory to federated sharing app
130 130
 			 */
131
-			$l = $this->serverContainer->getL10N('federatedfilesharing');
132
-			$addressHandler = new AddressHandler(
133
-				$this->serverContainer->getURLGenerator(),
134
-				$l,
135
-				$this->serverContainer->getCloudIdManager()
136
-			);
137
-			$notifications = new Notifications(
138
-				$addressHandler,
139
-				$this->serverContainer->getHTTPClientService(),
140
-				$this->serverContainer->query(\OCP\OCS\IDiscoveryService::class),
141
-				$this->serverContainer->getJobList(),
142
-				\OC::$server->getCloudFederationProviderManager(),
143
-				\OC::$server->getCloudFederationFactory(),
144
-				$this->serverContainer->query(IEventDispatcher::class)
145
-			);
146
-			$tokenHandler = new TokenHandler(
147
-				$this->serverContainer->getSecureRandom()
148
-			);
149
-
150
-			$this->federatedProvider = new FederatedShareProvider(
151
-				$this->serverContainer->getDatabaseConnection(),
152
-				$addressHandler,
153
-				$notifications,
154
-				$tokenHandler,
155
-				$l,
156
-				$this->serverContainer->getLogger(),
157
-				$this->serverContainer->getLazyRootFolder(),
158
-				$this->serverContainer->getConfig(),
159
-				$this->serverContainer->getUserManager(),
160
-				$this->serverContainer->getCloudIdManager(),
161
-				$this->serverContainer->getGlobalScaleConfig(),
162
-				$this->serverContainer->getCloudFederationProviderManager()
163
-			);
164
-		}
165
-
166
-		return $this->federatedProvider;
167
-	}
168
-
169
-	/**
170
-	 * Create the federated share provider
171
-	 *
172
-	 * @return ShareByMailProvider
173
-	 */
174
-	protected function getShareByMailProvider() {
175
-		if ($this->shareByMailProvider === null) {
176
-			/*
131
+            $l = $this->serverContainer->getL10N('federatedfilesharing');
132
+            $addressHandler = new AddressHandler(
133
+                $this->serverContainer->getURLGenerator(),
134
+                $l,
135
+                $this->serverContainer->getCloudIdManager()
136
+            );
137
+            $notifications = new Notifications(
138
+                $addressHandler,
139
+                $this->serverContainer->getHTTPClientService(),
140
+                $this->serverContainer->query(\OCP\OCS\IDiscoveryService::class),
141
+                $this->serverContainer->getJobList(),
142
+                \OC::$server->getCloudFederationProviderManager(),
143
+                \OC::$server->getCloudFederationFactory(),
144
+                $this->serverContainer->query(IEventDispatcher::class)
145
+            );
146
+            $tokenHandler = new TokenHandler(
147
+                $this->serverContainer->getSecureRandom()
148
+            );
149
+
150
+            $this->federatedProvider = new FederatedShareProvider(
151
+                $this->serverContainer->getDatabaseConnection(),
152
+                $addressHandler,
153
+                $notifications,
154
+                $tokenHandler,
155
+                $l,
156
+                $this->serverContainer->getLogger(),
157
+                $this->serverContainer->getLazyRootFolder(),
158
+                $this->serverContainer->getConfig(),
159
+                $this->serverContainer->getUserManager(),
160
+                $this->serverContainer->getCloudIdManager(),
161
+                $this->serverContainer->getGlobalScaleConfig(),
162
+                $this->serverContainer->getCloudFederationProviderManager()
163
+            );
164
+        }
165
+
166
+        return $this->federatedProvider;
167
+    }
168
+
169
+    /**
170
+     * Create the federated share provider
171
+     *
172
+     * @return ShareByMailProvider
173
+     */
174
+    protected function getShareByMailProvider() {
175
+        if ($this->shareByMailProvider === null) {
176
+            /*
177 177
 			 * Check if the app is enabled
178 178
 			 */
179
-			$appManager = $this->serverContainer->getAppManager();
180
-			if (!$appManager->isEnabledForUser('sharebymail')) {
181
-				return null;
182
-			}
183
-
184
-			$settingsManager = new SettingsManager($this->serverContainer->getConfig());
185
-
186
-			$this->shareByMailProvider = new ShareByMailProvider(
187
-				$this->serverContainer->getDatabaseConnection(),
188
-				$this->serverContainer->getSecureRandom(),
189
-				$this->serverContainer->getUserManager(),
190
-				$this->serverContainer->getLazyRootFolder(),
191
-				$this->serverContainer->getL10N('sharebymail'),
192
-				$this->serverContainer->getLogger(),
193
-				$this->serverContainer->getMailer(),
194
-				$this->serverContainer->getURLGenerator(),
195
-				$this->serverContainer->getActivityManager(),
196
-				$settingsManager,
197
-				$this->serverContainer->query(Defaults::class),
198
-				$this->serverContainer->getHasher(),
199
-				$this->serverContainer->get(IEventDispatcher::class),
200
-				$this->serverContainer->get(IManager::class)
201
-			);
202
-		}
203
-
204
-		return $this->shareByMailProvider;
205
-	}
206
-
207
-
208
-	/**
209
-	 * Create the circle share provider
210
-	 *
211
-	 * @return FederatedShareProvider
212
-	 *
213
-	 * @suppress PhanUndeclaredClassMethod
214
-	 */
215
-	protected function getShareByCircleProvider() {
216
-		if ($this->circlesAreNotAvailable) {
217
-			return null;
218
-		}
219
-
220
-		if (!$this->serverContainer->getAppManager()->isEnabledForUser('circles') ||
221
-			!class_exists('\OCA\Circles\ShareByCircleProvider')
222
-		) {
223
-			$this->circlesAreNotAvailable = true;
224
-			return null;
225
-		}
226
-
227
-		if ($this->shareByCircleProvider === null) {
228
-			$this->shareByCircleProvider = new \OCA\Circles\ShareByCircleProvider(
229
-				$this->serverContainer->getDatabaseConnection(),
230
-				$this->serverContainer->getSecureRandom(),
231
-				$this->serverContainer->getUserManager(),
232
-				$this->serverContainer->getLazyRootFolder(),
233
-				$this->serverContainer->getL10N('circles'),
234
-				$this->serverContainer->getLogger(),
235
-				$this->serverContainer->getURLGenerator()
236
-			);
237
-		}
238
-
239
-		return $this->shareByCircleProvider;
240
-	}
241
-
242
-	/**
243
-	 * Create the room share provider
244
-	 *
245
-	 * @return RoomShareProvider
246
-	 */
247
-	protected function getRoomShareProvider() {
248
-		if ($this->roomShareProvider === null) {
249
-			/*
179
+            $appManager = $this->serverContainer->getAppManager();
180
+            if (!$appManager->isEnabledForUser('sharebymail')) {
181
+                return null;
182
+            }
183
+
184
+            $settingsManager = new SettingsManager($this->serverContainer->getConfig());
185
+
186
+            $this->shareByMailProvider = new ShareByMailProvider(
187
+                $this->serverContainer->getDatabaseConnection(),
188
+                $this->serverContainer->getSecureRandom(),
189
+                $this->serverContainer->getUserManager(),
190
+                $this->serverContainer->getLazyRootFolder(),
191
+                $this->serverContainer->getL10N('sharebymail'),
192
+                $this->serverContainer->getLogger(),
193
+                $this->serverContainer->getMailer(),
194
+                $this->serverContainer->getURLGenerator(),
195
+                $this->serverContainer->getActivityManager(),
196
+                $settingsManager,
197
+                $this->serverContainer->query(Defaults::class),
198
+                $this->serverContainer->getHasher(),
199
+                $this->serverContainer->get(IEventDispatcher::class),
200
+                $this->serverContainer->get(IManager::class)
201
+            );
202
+        }
203
+
204
+        return $this->shareByMailProvider;
205
+    }
206
+
207
+
208
+    /**
209
+     * Create the circle share provider
210
+     *
211
+     * @return FederatedShareProvider
212
+     *
213
+     * @suppress PhanUndeclaredClassMethod
214
+     */
215
+    protected function getShareByCircleProvider() {
216
+        if ($this->circlesAreNotAvailable) {
217
+            return null;
218
+        }
219
+
220
+        if (!$this->serverContainer->getAppManager()->isEnabledForUser('circles') ||
221
+            !class_exists('\OCA\Circles\ShareByCircleProvider')
222
+        ) {
223
+            $this->circlesAreNotAvailable = true;
224
+            return null;
225
+        }
226
+
227
+        if ($this->shareByCircleProvider === null) {
228
+            $this->shareByCircleProvider = new \OCA\Circles\ShareByCircleProvider(
229
+                $this->serverContainer->getDatabaseConnection(),
230
+                $this->serverContainer->getSecureRandom(),
231
+                $this->serverContainer->getUserManager(),
232
+                $this->serverContainer->getLazyRootFolder(),
233
+                $this->serverContainer->getL10N('circles'),
234
+                $this->serverContainer->getLogger(),
235
+                $this->serverContainer->getURLGenerator()
236
+            );
237
+        }
238
+
239
+        return $this->shareByCircleProvider;
240
+    }
241
+
242
+    /**
243
+     * Create the room share provider
244
+     *
245
+     * @return RoomShareProvider
246
+     */
247
+    protected function getRoomShareProvider() {
248
+        if ($this->roomShareProvider === null) {
249
+            /*
250 250
 			 * Check if the app is enabled
251 251
 			 */
252
-			$appManager = $this->serverContainer->getAppManager();
253
-			if (!$appManager->isEnabledForUser('spreed')) {
254
-				return null;
255
-			}
256
-
257
-			try {
258
-				$this->roomShareProvider = $this->serverContainer->query('\OCA\Talk\Share\RoomShareProvider');
259
-			} catch (\OCP\AppFramework\QueryException $e) {
260
-				return null;
261
-			}
262
-		}
263
-
264
-		return $this->roomShareProvider;
265
-	}
266
-
267
-	/**
268
-	 * @inheritdoc
269
-	 */
270
-	public function getProvider($id) {
271
-		$provider = null;
272
-		if (isset($this->shareProviders[$id])) {
273
-			return $this->shareProviders[$id];
274
-		}
275
-
276
-		if ($id === 'ocinternal') {
277
-			$provider = $this->defaultShareProvider();
278
-		} elseif ($id === 'ocFederatedSharing') {
279
-			$provider = $this->federatedShareProvider();
280
-		} elseif ($id === 'ocMailShare') {
281
-			$provider = $this->getShareByMailProvider();
282
-		} elseif ($id === 'ocCircleShare') {
283
-			$provider = $this->getShareByCircleProvider();
284
-		} elseif ($id === 'ocRoomShare') {
285
-			$provider = $this->getRoomShareProvider();
286
-		}
287
-
288
-		foreach ($this->registeredShareProviders as $shareProvider) {
289
-			/** @var IShareProvider $instance */
290
-			$instance = $this->serverContainer->get($shareProvider);
291
-			$this->shareProviders[$instance->identifier()] = $instance;
292
-		}
293
-
294
-		if (isset($this->shareProviders[$id])) {
295
-			$provider = $this->shareProviders[$id];
296
-		}
297
-
298
-		if ($provider === null) {
299
-			throw new ProviderException('No provider with id .' . $id . ' found.');
300
-		}
301
-
302
-		return $provider;
303
-	}
304
-
305
-	/**
306
-	 * @inheritdoc
307
-	 */
308
-	public function getProviderForType($shareType) {
309
-		$provider = null;
310
-
311
-		if ($shareType === IShare::TYPE_USER ||
312
-			$shareType === IShare::TYPE_GROUP ||
313
-			$shareType === IShare::TYPE_LINK
314
-		) {
315
-			$provider = $this->defaultShareProvider();
316
-		} elseif ($shareType === IShare::TYPE_REMOTE || $shareType === IShare::TYPE_REMOTE_GROUP) {
317
-			$provider = $this->federatedShareProvider();
318
-		} elseif ($shareType === IShare::TYPE_EMAIL) {
319
-			$provider = $this->getShareByMailProvider();
320
-		} elseif ($shareType === IShare::TYPE_CIRCLE) {
321
-			$provider = $this->getShareByCircleProvider();
322
-		} elseif ($shareType === IShare::TYPE_ROOM) {
323
-			$provider = $this->getRoomShareProvider();
324
-		} elseif ($shareType === IShare::TYPE_DECK) {
325
-			$provider = $this->getProvider('deck');
326
-		}
327
-
328
-
329
-		if ($provider === null) {
330
-			throw new ProviderException('No share provider for share type ' . $shareType);
331
-		}
332
-
333
-		return $provider;
334
-	}
335
-
336
-	public function getAllProviders() {
337
-		$shares = [$this->defaultShareProvider(), $this->federatedShareProvider()];
338
-		$shareByMail = $this->getShareByMailProvider();
339
-		if ($shareByMail !== null) {
340
-			$shares[] = $shareByMail;
341
-		}
342
-		$shareByCircle = $this->getShareByCircleProvider();
343
-		if ($shareByCircle !== null) {
344
-			$shares[] = $shareByCircle;
345
-		}
346
-		$roomShare = $this->getRoomShareProvider();
347
-		if ($roomShare !== null) {
348
-			$shares[] = $roomShare;
349
-		}
350
-
351
-		foreach ($this->registeredShareProviders as $shareProvider) {
352
-			/** @var IShareProvider $instance */
353
-			$instance = $this->serverContainer->get($shareProvider);
354
-			if (!isset($this->shareProviders[$instance->identifier()])) {
355
-				$this->shareProviders[$instance->identifier()] = $instance;
356
-			}
357
-			$shares[] = $this->shareProviders[$instance->identifier()];
358
-		}
359
-
360
-
361
-
362
-		return $shares;
363
-	}
252
+            $appManager = $this->serverContainer->getAppManager();
253
+            if (!$appManager->isEnabledForUser('spreed')) {
254
+                return null;
255
+            }
256
+
257
+            try {
258
+                $this->roomShareProvider = $this->serverContainer->query('\OCA\Talk\Share\RoomShareProvider');
259
+            } catch (\OCP\AppFramework\QueryException $e) {
260
+                return null;
261
+            }
262
+        }
263
+
264
+        return $this->roomShareProvider;
265
+    }
266
+
267
+    /**
268
+     * @inheritdoc
269
+     */
270
+    public function getProvider($id) {
271
+        $provider = null;
272
+        if (isset($this->shareProviders[$id])) {
273
+            return $this->shareProviders[$id];
274
+        }
275
+
276
+        if ($id === 'ocinternal') {
277
+            $provider = $this->defaultShareProvider();
278
+        } elseif ($id === 'ocFederatedSharing') {
279
+            $provider = $this->federatedShareProvider();
280
+        } elseif ($id === 'ocMailShare') {
281
+            $provider = $this->getShareByMailProvider();
282
+        } elseif ($id === 'ocCircleShare') {
283
+            $provider = $this->getShareByCircleProvider();
284
+        } elseif ($id === 'ocRoomShare') {
285
+            $provider = $this->getRoomShareProvider();
286
+        }
287
+
288
+        foreach ($this->registeredShareProviders as $shareProvider) {
289
+            /** @var IShareProvider $instance */
290
+            $instance = $this->serverContainer->get($shareProvider);
291
+            $this->shareProviders[$instance->identifier()] = $instance;
292
+        }
293
+
294
+        if (isset($this->shareProviders[$id])) {
295
+            $provider = $this->shareProviders[$id];
296
+        }
297
+
298
+        if ($provider === null) {
299
+            throw new ProviderException('No provider with id .' . $id . ' found.');
300
+        }
301
+
302
+        return $provider;
303
+    }
304
+
305
+    /**
306
+     * @inheritdoc
307
+     */
308
+    public function getProviderForType($shareType) {
309
+        $provider = null;
310
+
311
+        if ($shareType === IShare::TYPE_USER ||
312
+            $shareType === IShare::TYPE_GROUP ||
313
+            $shareType === IShare::TYPE_LINK
314
+        ) {
315
+            $provider = $this->defaultShareProvider();
316
+        } elseif ($shareType === IShare::TYPE_REMOTE || $shareType === IShare::TYPE_REMOTE_GROUP) {
317
+            $provider = $this->federatedShareProvider();
318
+        } elseif ($shareType === IShare::TYPE_EMAIL) {
319
+            $provider = $this->getShareByMailProvider();
320
+        } elseif ($shareType === IShare::TYPE_CIRCLE) {
321
+            $provider = $this->getShareByCircleProvider();
322
+        } elseif ($shareType === IShare::TYPE_ROOM) {
323
+            $provider = $this->getRoomShareProvider();
324
+        } elseif ($shareType === IShare::TYPE_DECK) {
325
+            $provider = $this->getProvider('deck');
326
+        }
327
+
328
+
329
+        if ($provider === null) {
330
+            throw new ProviderException('No share provider for share type ' . $shareType);
331
+        }
332
+
333
+        return $provider;
334
+    }
335
+
336
+    public function getAllProviders() {
337
+        $shares = [$this->defaultShareProvider(), $this->federatedShareProvider()];
338
+        $shareByMail = $this->getShareByMailProvider();
339
+        if ($shareByMail !== null) {
340
+            $shares[] = $shareByMail;
341
+        }
342
+        $shareByCircle = $this->getShareByCircleProvider();
343
+        if ($shareByCircle !== null) {
344
+            $shares[] = $shareByCircle;
345
+        }
346
+        $roomShare = $this->getRoomShareProvider();
347
+        if ($roomShare !== null) {
348
+            $shares[] = $roomShare;
349
+        }
350
+
351
+        foreach ($this->registeredShareProviders as $shareProvider) {
352
+            /** @var IShareProvider $instance */
353
+            $instance = $this->serverContainer->get($shareProvider);
354
+            if (!isset($this->shareProviders[$instance->identifier()])) {
355
+                $this->shareProviders[$instance->identifier()] = $instance;
356
+            }
357
+            $shares[] = $this->shareProviders[$instance->identifier()];
358
+        }
359
+
360
+
361
+
362
+        return $shares;
363
+    }
364 364
 }
Please login to merge, or discard this patch.