]> source.dussan.org Git - nextcloud-server.git/commitdiff
catch specific file exceptions and convert them to proper http status code via webdav
authorThomas Müller <thomas.mueller@tmit.eu>
Tue, 8 Oct 2013 13:04:31 +0000 (15:04 +0200)
committerThomas Müller <thomas.mueller@tmit.eu>
Tue, 8 Oct 2013 13:04:31 +0000 (15:04 +0200)
lib/private/connector/sabre/file.php

index 3c19da7c6181a55fce16b61e22775cfe223939f1..84154ee855a17dc05416638284b3c6fb6681fb36 100644 (file)
@@ -87,14 +87,21 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D
                                throw new Sabre_DAV_Exception();
                        }
                } catch (\OCP\Files\NotPermittedException $e) {
-                       throw new Sabre_DAV_Exception_Forbidden();
+                       // a more general case - due to whatever reason the content could not be written
+                       throw new Sabre_DAV_Exception_Forbidden($e->getMessage());
+
                } catch (\OCP\Files\EntityTooLargeException $e) {
-                       throw new OC_Connector_Sabre_Exception_EntityTooLarge();
+                       // the file is too big to be stored
+                       throw new OC_Connector_Sabre_Exception_EntityTooLarge($e->getMessage());
+
                } catch (\OCP\Files\InvalidContentException $e) {
-                       throw new OC_Connector_Sabre_Exception_UnsupportedMediaType();
+                       // the file content is not permitted
+                       throw new OC_Connector_Sabre_Exception_UnsupportedMediaType($e->getMessage());
+
                } catch (\OCP\Files\InvalidPathException $e) {
-                       // TODO: add specific exception here
-                       throw new Sabre_DAV_Exception_Forbidden();
+                       // the path for the file was not valid
+                       // TODO: find proper http status code for this case
+                       throw new Sabre_DAV_Exception_Forbidden($e->getMessage());
                }
 
                // rename to correct path