diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-10-07 15:11:47 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-10-07 15:11:47 +0200 |
commit | 730c80ff9c83ff1b027ab804ecad599fbcaf7bd3 (patch) | |
tree | 500d6f4480f41563090ef29c1d4652c367519759 /lib/private/connector | |
parent | 1e47468c53964591905760c2f7fad14725bdb1de (diff) | |
download | nextcloud-server-730c80ff9c83ff1b027ab804ecad599fbcaf7bd3.tar.gz nextcloud-server-730c80ff9c83ff1b027ab804ecad599fbcaf7bd3.zip |
adding additional exceptions for special cases where creating a file might not be allowed
Diffstat (limited to 'lib/private/connector')
-rw-r--r-- | lib/private/connector/sabre/exception/entitytoolarge.php | 23 | ||||
-rw-r--r-- | lib/private/connector/sabre/exception/unsupportedmediatype.php | 22 | ||||
-rw-r--r-- | lib/private/connector/sabre/file.php | 7 |
3 files changed, 52 insertions, 0 deletions
diff --git a/lib/private/connector/sabre/exception/entitytoolarge.php b/lib/private/connector/sabre/exception/entitytoolarge.php new file mode 100644 index 00000000000..aa9b37a0496 --- /dev/null +++ b/lib/private/connector/sabre/exception/entitytoolarge.php @@ -0,0 +1,23 @@ +<?php + +/** + * EntityTooLarge + * + * This exception is thrown whenever a user tries to upload a file which exceeds hard limitations + * + */ +class OC_Connector_Sabre_Exception_EntityTooLarge extends Sabre_DAV_Exception { + + /** + * Returns the HTTP statuscode for this exception + * + * @return int + */ + public function getHTTPCode() { + +// return 413; + + return 450; + } + +} diff --git a/lib/private/connector/sabre/exception/unsupportedmediatype.php b/lib/private/connector/sabre/exception/unsupportedmediatype.php new file mode 100644 index 00000000000..a8b561280c1 --- /dev/null +++ b/lib/private/connector/sabre/exception/unsupportedmediatype.php @@ -0,0 +1,22 @@ +<?php + +/** + * Unsupported Media Type + * + * This exception is thrown whenever a user tries to upload a file which holds content which is not allowed + * + */ +class OC_Connector_Sabre_Exception_UnsupportedMediaType extends Sabre_DAV_Exception { + + /** + * Returns the HTTP status code for this exception + * + * @return int + */ + public function getHTTPCode() { + + return 415; + + } + +} diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php index 8ffec371e3f..3c19da7c618 100644 --- a/lib/private/connector/sabre/file.php +++ b/lib/private/connector/sabre/file.php @@ -88,6 +88,13 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D } } catch (\OCP\Files\NotPermittedException $e) { throw new Sabre_DAV_Exception_Forbidden(); + } catch (\OCP\Files\EntityTooLargeException $e) { + throw new OC_Connector_Sabre_Exception_EntityTooLarge(); + } catch (\OCP\Files\InvalidContentException $e) { + throw new OC_Connector_Sabre_Exception_UnsupportedMediaType(); + } catch (\OCP\Files\InvalidPathException $e) { + // TODO: add specific exception here + throw new Sabre_DAV_Exception_Forbidden(); } // rename to correct path |