Completed
Pull Request — master (#3757)
by Joas
15:36
created
apps/dav/lib/Server.php 2 patches
Indentation   +177 added lines, -177 removed lines patch added patch discarded remove patch
@@ -54,181 +54,181 @@
 block discarded – undo
54 54
 
55 55
 class Server {
56 56
 
57
-	/** @var IRequest */
58
-	private $request;
59
-
60
-	/** @var  string */
61
-	private $baseUri;
62
-
63
-	/** @var Connector\Sabre\Server  */
64
-	private $server;
65
-
66
-	public function __construct(IRequest $request, $baseUri) {
67
-		$this->request = $request;
68
-		$this->baseUri = $baseUri;
69
-		$logger = \OC::$server->getLogger();
70
-		$mailer = \OC::$server->getMailer();
71
-		$dispatcher = \OC::$server->getEventDispatcher();
72
-
73
-		$root = new RootCollection();
74
-		$this->server = new \OCA\DAV\Connector\Sabre\Server($root);
75
-
76
-		// Backends
77
-		$authBackend = new Auth(
78
-			\OC::$server->getSession(),
79
-			\OC::$server->getUserSession(),
80
-			\OC::$server->getRequest(),
81
-			\OC::$server->getTwoFactorAuthManager(),
82
-			\OC::$server->getBruteForceThrottler()
83
-		);
84
-
85
-		// Set URL explicitly due to reverse-proxy situations
86
-		$this->server->httpRequest->setUrl($this->request->getRequestUri());
87
-		$this->server->setBaseUri($this->baseUri);
88
-
89
-		$this->server->addPlugin(new BlockLegacyClientPlugin(\OC::$server->getConfig()));
90
-		$authPlugin = new Plugin();
91
-		$authPlugin->addBackend(new PublicAuth());
92
-		$this->server->addPlugin($authPlugin);
93
-
94
-		// allow setup of additional auth backends
95
-		$event = new SabrePluginEvent($this->server);
96
-		$dispatcher->dispatch('OCA\DAV\Connector\Sabre::authInit', $event);
97
-
98
-		// because we are throwing exceptions this plugin has to be the last one
99
-		$authPlugin->addBackend($authBackend);
100
-
101
-		// debugging
102
-		if(\OC::$server->getConfig()->getSystemValue('debug', false)) {
103
-			$this->server->addPlugin(new \Sabre\DAV\Browser\Plugin());
104
-		} else {
105
-			$this->server->addPlugin(new DummyGetResponsePlugin());
106
-		}
107
-
108
-		$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
109
-		$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
110
-		$this->server->addPlugin(new \Sabre\DAV\Sync\Plugin());
111
-
112
-		// acl
113
-		$acl = new DavAclPlugin();
114
-		$acl->principalCollectionSet = [
115
-			'principals/users', 'principals/groups'
116
-		];
117
-		$acl->defaultUsernamePath = 'principals/users';
118
-		$this->server->addPlugin($acl);
119
-
120
-		// calendar plugins
121
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
122
-		$this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
123
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin());
124
-		$this->server->addPlugin(new IMipPlugin($mailer, $logger));
125
-		$this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
126
-		$this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
127
-		$this->server->addPlugin(new DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
128
-		$this->server->addPlugin(new \OCA\DAV\CalDAV\Publishing\PublishPlugin(
129
-			\OC::$server->getConfig(),
130
-			\OC::$server->getURLGenerator()
131
-		));
132
-
133
-		// addressbook plugins
134
-		$this->server->addPlugin(new \OCA\DAV\CardDAV\Plugin());
135
-		$this->server->addPlugin(new VCFExportPlugin());
136
-		$this->server->addPlugin(new ImageExportPlugin(\OC::$server->getLogger()));
137
-
138
-		// system tags plugins
139
-		$this->server->addPlugin(new SystemTagPlugin(
140
-			\OC::$server->getSystemTagManager(),
141
-			\OC::$server->getGroupManager(),
142
-			\OC::$server->getUserSession()
143
-		));
144
-
145
-		// comments plugin
146
-		$this->server->addPlugin(new CommentsPlugin(
147
-			\OC::$server->getCommentsManager(),
148
-			\OC::$server->getUserSession()
149
-		));
150
-
151
-		$this->server->addPlugin(new CopyEtagHeaderPlugin());
152
-
153
-		// Some WebDAV clients do require Class 2 WebDAV support (locking), since
154
-		// we do not provide locking we emulate it using a fake locking plugin.
155
-		if($request->isUserAgent([
156
-			'/WebDAVFS/',
157
-			'/Microsoft Office OneNote 2013/',
158
-			'/^Microsoft-WebDAV/',// Microsoft-WebDAV-MiniRedir/6.1.7601
159
-		])) {
160
-			$this->server->addPlugin(new FakeLockerPlugin());
161
-		}
162
-
163
-		if (BrowserErrorPagePlugin::isBrowserRequest($request)) {
164
-			$this->server->addPlugin(new BrowserErrorPagePlugin());
165
-		}
166
-
167
-		// wait with registering these until auth is handled and the filesystem is setup
168
-		$this->server->on('beforeMethod', function () {
169
-			// custom properties plugin must be the last one
170
-			$userSession = \OC::$server->getUserSession();
171
-			$user = $userSession->getUser();
172
-			if ($user !== null) {
173
-				$view = \OC\Files\Filesystem::getView();
174
-				$this->server->addPlugin(
175
-					new FilesPlugin(
176
-						$this->server->tree,
177
-						\OC::$server->getConfig(),
178
-						$this->request,
179
-						\OC::$server->getPreviewManager(),
180
-						false,
181
-						!\OC::$server->getConfig()->getSystemValue('debug', false)
182
-					)
183
-				);
184
-
185
-				$this->server->addPlugin(
186
-					new \Sabre\DAV\PropertyStorage\Plugin(
187
-						new CustomPropertiesBackend(
188
-							$this->server->tree,
189
-							\OC::$server->getDatabaseConnection(),
190
-							\OC::$server->getUserSession()->getUser()
191
-						)
192
-					)
193
-				);
194
-				if ($view !== null) {
195
-					$this->server->addPlugin(
196
-						new QuotaPlugin($view));
197
-				}
198
-				$this->server->addPlugin(
199
-					new TagsPlugin(
200
-						$this->server->tree, \OC::$server->getTagManager()
201
-					)
202
-				);
203
-				// TODO: switch to LazyUserFolder
204
-				$userFolder = \OC::$server->getUserFolder();
205
-				$this->server->addPlugin(new SharesPlugin(
206
-					$this->server->tree,
207
-					$userSession,
208
-					$userFolder,
209
-					\OC::$server->getShareManager()
210
-				));
211
-				$this->server->addPlugin(new CommentPropertiesPlugin(
212
-					\OC::$server->getCommentsManager(),
213
-					$userSession
214
-				));
215
-				if ($view !== null) {
216
-					$this->server->addPlugin(new FilesReportPlugin(
217
-						$this->server->tree,
218
-						$view,
219
-						\OC::$server->getSystemTagManager(),
220
-						\OC::$server->getSystemTagObjectMapper(),
221
-						\OC::$server->getTagManager(),
222
-						$userSession,
223
-						\OC::$server->getGroupManager(),
224
-						$userFolder
225
-					));
226
-				}
227
-			}
228
-		});
229
-	}
230
-
231
-	public function exec() {
232
-		$this->server->exec();
233
-	}
57
+    /** @var IRequest */
58
+    private $request;
59
+
60
+    /** @var  string */
61
+    private $baseUri;
62
+
63
+    /** @var Connector\Sabre\Server  */
64
+    private $server;
65
+
66
+    public function __construct(IRequest $request, $baseUri) {
67
+        $this->request = $request;
68
+        $this->baseUri = $baseUri;
69
+        $logger = \OC::$server->getLogger();
70
+        $mailer = \OC::$server->getMailer();
71
+        $dispatcher = \OC::$server->getEventDispatcher();
72
+
73
+        $root = new RootCollection();
74
+        $this->server = new \OCA\DAV\Connector\Sabre\Server($root);
75
+
76
+        // Backends
77
+        $authBackend = new Auth(
78
+            \OC::$server->getSession(),
79
+            \OC::$server->getUserSession(),
80
+            \OC::$server->getRequest(),
81
+            \OC::$server->getTwoFactorAuthManager(),
82
+            \OC::$server->getBruteForceThrottler()
83
+        );
84
+
85
+        // Set URL explicitly due to reverse-proxy situations
86
+        $this->server->httpRequest->setUrl($this->request->getRequestUri());
87
+        $this->server->setBaseUri($this->baseUri);
88
+
89
+        $this->server->addPlugin(new BlockLegacyClientPlugin(\OC::$server->getConfig()));
90
+        $authPlugin = new Plugin();
91
+        $authPlugin->addBackend(new PublicAuth());
92
+        $this->server->addPlugin($authPlugin);
93
+
94
+        // allow setup of additional auth backends
95
+        $event = new SabrePluginEvent($this->server);
96
+        $dispatcher->dispatch('OCA\DAV\Connector\Sabre::authInit', $event);
97
+
98
+        // because we are throwing exceptions this plugin has to be the last one
99
+        $authPlugin->addBackend($authBackend);
100
+
101
+        // debugging
102
+        if(\OC::$server->getConfig()->getSystemValue('debug', false)) {
103
+            $this->server->addPlugin(new \Sabre\DAV\Browser\Plugin());
104
+        } else {
105
+            $this->server->addPlugin(new DummyGetResponsePlugin());
106
+        }
107
+
108
+        $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
109
+        $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
110
+        $this->server->addPlugin(new \Sabre\DAV\Sync\Plugin());
111
+
112
+        // acl
113
+        $acl = new DavAclPlugin();
114
+        $acl->principalCollectionSet = [
115
+            'principals/users', 'principals/groups'
116
+        ];
117
+        $acl->defaultUsernamePath = 'principals/users';
118
+        $this->server->addPlugin($acl);
119
+
120
+        // calendar plugins
121
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
122
+        $this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
123
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin());
124
+        $this->server->addPlugin(new IMipPlugin($mailer, $logger));
125
+        $this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
126
+        $this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
127
+        $this->server->addPlugin(new DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
128
+        $this->server->addPlugin(new \OCA\DAV\CalDAV\Publishing\PublishPlugin(
129
+            \OC::$server->getConfig(),
130
+            \OC::$server->getURLGenerator()
131
+        ));
132
+
133
+        // addressbook plugins
134
+        $this->server->addPlugin(new \OCA\DAV\CardDAV\Plugin());
135
+        $this->server->addPlugin(new VCFExportPlugin());
136
+        $this->server->addPlugin(new ImageExportPlugin(\OC::$server->getLogger()));
137
+
138
+        // system tags plugins
139
+        $this->server->addPlugin(new SystemTagPlugin(
140
+            \OC::$server->getSystemTagManager(),
141
+            \OC::$server->getGroupManager(),
142
+            \OC::$server->getUserSession()
143
+        ));
144
+
145
+        // comments plugin
146
+        $this->server->addPlugin(new CommentsPlugin(
147
+            \OC::$server->getCommentsManager(),
148
+            \OC::$server->getUserSession()
149
+        ));
150
+
151
+        $this->server->addPlugin(new CopyEtagHeaderPlugin());
152
+
153
+        // Some WebDAV clients do require Class 2 WebDAV support (locking), since
154
+        // we do not provide locking we emulate it using a fake locking plugin.
155
+        if($request->isUserAgent([
156
+            '/WebDAVFS/',
157
+            '/Microsoft Office OneNote 2013/',
158
+            '/^Microsoft-WebDAV/',// Microsoft-WebDAV-MiniRedir/6.1.7601
159
+        ])) {
160
+            $this->server->addPlugin(new FakeLockerPlugin());
161
+        }
162
+
163
+        if (BrowserErrorPagePlugin::isBrowserRequest($request)) {
164
+            $this->server->addPlugin(new BrowserErrorPagePlugin());
165
+        }
166
+
167
+        // wait with registering these until auth is handled and the filesystem is setup
168
+        $this->server->on('beforeMethod', function () {
169
+            // custom properties plugin must be the last one
170
+            $userSession = \OC::$server->getUserSession();
171
+            $user = $userSession->getUser();
172
+            if ($user !== null) {
173
+                $view = \OC\Files\Filesystem::getView();
174
+                $this->server->addPlugin(
175
+                    new FilesPlugin(
176
+                        $this->server->tree,
177
+                        \OC::$server->getConfig(),
178
+                        $this->request,
179
+                        \OC::$server->getPreviewManager(),
180
+                        false,
181
+                        !\OC::$server->getConfig()->getSystemValue('debug', false)
182
+                    )
183
+                );
184
+
185
+                $this->server->addPlugin(
186
+                    new \Sabre\DAV\PropertyStorage\Plugin(
187
+                        new CustomPropertiesBackend(
188
+                            $this->server->tree,
189
+                            \OC::$server->getDatabaseConnection(),
190
+                            \OC::$server->getUserSession()->getUser()
191
+                        )
192
+                    )
193
+                );
194
+                if ($view !== null) {
195
+                    $this->server->addPlugin(
196
+                        new QuotaPlugin($view));
197
+                }
198
+                $this->server->addPlugin(
199
+                    new TagsPlugin(
200
+                        $this->server->tree, \OC::$server->getTagManager()
201
+                    )
202
+                );
203
+                // TODO: switch to LazyUserFolder
204
+                $userFolder = \OC::$server->getUserFolder();
205
+                $this->server->addPlugin(new SharesPlugin(
206
+                    $this->server->tree,
207
+                    $userSession,
208
+                    $userFolder,
209
+                    \OC::$server->getShareManager()
210
+                ));
211
+                $this->server->addPlugin(new CommentPropertiesPlugin(
212
+                    \OC::$server->getCommentsManager(),
213
+                    $userSession
214
+                ));
215
+                if ($view !== null) {
216
+                    $this->server->addPlugin(new FilesReportPlugin(
217
+                        $this->server->tree,
218
+                        $view,
219
+                        \OC::$server->getSystemTagManager(),
220
+                        \OC::$server->getSystemTagObjectMapper(),
221
+                        \OC::$server->getTagManager(),
222
+                        $userSession,
223
+                        \OC::$server->getGroupManager(),
224
+                        $userFolder
225
+                    ));
226
+                }
227
+            }
228
+        });
229
+    }
230
+
231
+    public function exec() {
232
+        $this->server->exec();
233
+    }
234 234
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -99,7 +99,7 @@  discard block
 block discarded – undo
99 99
 		$authPlugin->addBackend($authBackend);
100 100
 
101 101
 		// debugging
102
-		if(\OC::$server->getConfig()->getSystemValue('debug', false)) {
102
+		if (\OC::$server->getConfig()->getSystemValue('debug', false)) {
103 103
 			$this->server->addPlugin(new \Sabre\DAV\Browser\Plugin());
104 104
 		} else {
105 105
 			$this->server->addPlugin(new DummyGetResponsePlugin());
@@ -152,10 +152,10 @@  discard block
 block discarded – undo
152 152
 
153 153
 		// Some WebDAV clients do require Class 2 WebDAV support (locking), since
154 154
 		// we do not provide locking we emulate it using a fake locking plugin.
155
-		if($request->isUserAgent([
155
+		if ($request->isUserAgent([
156 156
 			'/WebDAVFS/',
157 157
 			'/Microsoft Office OneNote 2013/',
158
-			'/^Microsoft-WebDAV/',// Microsoft-WebDAV-MiniRedir/6.1.7601
158
+			'/^Microsoft-WebDAV/', // Microsoft-WebDAV-MiniRedir/6.1.7601
159 159
 		])) {
160 160
 			$this->server->addPlugin(new FakeLockerPlugin());
161 161
 		}
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
 		}
166 166
 
167 167
 		// wait with registering these until auth is handled and the filesystem is setup
168
-		$this->server->on('beforeMethod', function () {
168
+		$this->server->on('beforeMethod', function() {
169 169
 			// custom properties plugin must be the last one
170 170
 			$userSession = \OC::$server->getUserSession();
171 171
 			$user = $userSession->getUser();
Please login to merge, or discard this patch.