Roeland Jago Douma
719b70108d
Hanlde writestream not closing source
...
Fixes #14298
If a storage doesn'tclose the write stream then $isEOF is not yet set.
So we have to fallback.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-02-20 09:49:06 +01:00
Roeland Jago Douma
fc967a5ac2
Make sure that we have a stream
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-02-18 14:25:57 +01:00
Roeland Jago Douma
3720add736
Add a wrapper to determine if a file is EOF
...
The stream is already closed at this point. Which means feof will always
return false. We have to determine if the stream is EOF in the
preCloseCallback. And pass this info along. Then the logic works as
expected.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-02-15 08:41:39 +01:00
Jan-Philipp Litza
9348e3d2f6
dav: Fix handling of chunked WebDAV upload
...
When $data is null (which can happen when $request->getBodyAsStream() returns
null), the Exceptions says "copied bytes: 0, expected filesize: 0", which
sounds more like success...
2019-01-28 17:14:22 +01:00
Bastien Durel
4535cc50ad
check anonymous OPTIONS requests file in root (not in subdir)
...
Signed-off-by: Bastien Durel <bastien@durel.org>
2019-01-04 18:42:42 +00:00
Roeland Jago Douma
d41d3d8bf3
If the parent is not cached we should request the file
...
Else we ignore all incomming shares. Which basically does 💥
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-12-06 21:59:28 +01:00
Roeland Jago Douma
28474612e4
Only run the AnonymousOptionsPlugion on Anonymous requests
...
Fixes #12744
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-12-04 11:55:04 +01:00
Robin Appelman
ffd7778040
extend anonymous options to work on every dav url
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-11-23 15:36:40 +01:00
Robin Appelman
35251928d5
forward object not found error in switch as dav 404
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-11-19 11:34:38 +01:00
Roeland Jago Douma
665a6d2055
Allow writing an empty file with the new writeStream
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-11-05 17:00:04 +01:00
Roeland Jago Douma
5d3051ff62
Do not log FileLock as exception
...
There is no reason to log FileLock errors as exceptions to the log file.
Locks happen for very legit reasons and it is actually a sign of the
code doing its job.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-11-04 13:55:49 +01:00
Roeland Jago Douma
7ba8700ba1
Merge pull request #12148 from nextcloud/suppress-wrong-audit-log-message
...
suppress wrong audit log messages about failed login attempts
2018-11-02 13:52:50 +01:00
Robin Appelman
9b3cc72f7c
fix writeStream for jail wrapper
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-10-31 21:10:57 +01:00
Robin Appelman
93de63777e
extend storage api to allow directly writing a stream to storage
...
this removes the need for temporary storages with some external storage backends.
The new method is added to a separate interface to maintain compatibility with
storage backends implementing the storage interface directly (without inheriting common)
Currently the interface is implemented for objectstorage based storages and local storage
and used by webdav uploads
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-10-31 21:10:44 +01:00
Bjoern Schiessle
0efd29f41f
first check if the user is already logged in and then try to authenticate via apache, this way we suppress wrong audit log messages about failed login attempts
...
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-10-30 22:14:52 +01:00
Georg Ehrke
218253db76
allow user principal search for dav displayname property
...
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-10-22 15:48:18 +02:00
Roeland Jago Douma
b51e503aea
Do not emit preHooks twice on non-part-storage
...
The old code would emit the hooks twice. Thus having the version written
twice. Which is not very performant as it is first read twice as well.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-19 12:19:53 +02:00
Georg Ehrke
f5dc7b7f07
move disableFreeBusy check from User principal backend to Scheduling Outbox collection. This allows to keep local delivery of scheduling messages while prohibiting FreeBusy requests
...
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-10-16 20:27:33 +02:00
Robin Appelman
3806ecb242
use the same ignored properties list for both CustomerPropertiesBackends
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-08-28 18:27:53 +02:00
Daniel Calviño Sánchez
523fdb612c
Add room shares to DAV and recent files "share-types" property
...
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2018-08-08 14:25:43 +02:00
Roeland Jago Douma
a2df728fb8
Merge pull request #9581 from nextcloud/dav-acl-no-files
...
disable dav acl plugin for files resource
2018-07-20 12:16:45 +02:00
Robin Appelman
d4a51447d1
Fix getting ocs share permissions if a storage is not available
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-07-18 14:42:39 +02:00
Robin Appelman
8399d6070e
always log exceptions on dav write
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-07-09 14:25:54 +02:00
Morris Jobke
7025f16017
Merge pull request #9345 from nextcloud/federation20
...
Federation 2.0
2018-07-03 23:13:47 +02:00
Robin Appelman
27089422e1
Improved logging of smb connection errors
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-07-03 14:56:37 +02:00
Bjoern Schiessle
cdf8abb060
look for correct OCM permissions
...
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2018-07-02 11:29:31 +02:00
Robin Appelman
b21bec5c73
Fix search related results in OPTIONS requests
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-06-28 14:54:46 +02:00
Robin Appelman
f017f431f6
properly lock the target file on dav upload when not using part files
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-06-11 15:26:41 +02:00
Robin Appelman
ea4f4b8417
Add sabre plugin to allow anonymous options requests to the dav root
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-06-01 17:20:42 +02:00
Morris Jobke
c3fc789b2c
Merge pull request #9550 from nextcloud/bugfix/noid/override_freebusy_sharing_rules
...
allow admins to disable FreeBusy without modifying ShareAPI capabilities
2018-06-01 12:00:56 +02:00
Roeland Jago Douma
240006bdf5
When sharing calendars and addressbooks the principal has to be verified to be valid
...
d3fb8fcdd3
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-05-27 20:51:36 +02:00
Robin Appelman
491f01efba
disable dav acl plugin for files resource
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-05-24 14:00:14 +02:00
Georg Ehrke
367ca563b4
allow admins to override FreeBusy capabilities without modifying ShareAPI capabilities
...
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2018-05-22 19:16:26 +02:00
Morris Jobke
7cb467b476
Merge pull request #9355 from nextcloud/dav-upload-lock
...
only allow a single concurrent dav write to a file
2018-05-03 16:28:39 +02:00
Morris Jobke
a56ec1062a
Merge pull request #9346 from nextcloud/techdep/noid/needsPartFile_to_storage
...
Use an actual function of the storage to determine needsPartFile
2018-05-02 16:03:31 +02:00
Roeland Jago Douma
953691abb2
External mount does not get DELETE and UPDATE if readonly
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-05-01 15:18:56 +02:00
Roeland Jago Douma
055a003661
Use an actual function of the storage to determine needsPartFile
...
We have a function for it so better to override that. Also because other
codes that might check this should get the right value.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-05-01 15:02:36 +02:00
Robin Appelman
dd1b0799a4
only allow a single concurrent dav write to a file
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-04-26 11:16:51 +02:00
Arthur Schiwon
38a90130ce
move log constants to ILogger
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2018-04-26 10:45:52 +02:00
Morris Jobke
dd34cb7540
Less deprecated calls to OCP\Util::writeLog
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-04-22 20:41:49 +02:00
Robin Appelman
bc3fde9f75
log more information about insufficient storage in dav plugin
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-04-17 15:29:37 +02:00
Robin Appelman
e6a7ddc1c6
transform exception during file read to sabre exceptions
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-04-11 14:45:35 +02:00
Morris Jobke
bd8352d4c4
Merge pull request #8996 from brandonkirsch/fix-onenote-dav
...
Fix webdav support for OneNote clients
2018-04-03 13:27:29 +02:00
Roeland Jago Douma
e8b7e9e75d
Do not treat is-encrypted as customer property
...
fixes #8977
Else for all files in a folder we would launch off more queries.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-03-28 08:34:50 +02:00
Brandon Kirsch
c5005bbab5
Fix webdav support for OneNote clients
2018-03-26 15:32:12 -04:00
Roeland Jago Douma
e6a2c13ac1
MethodNotAllowed is not a Fatal error
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-03-26 12:15:31 +02:00
Robin Appelman
f5ef9e02b2
emit pre-hooks earlier when not using part files
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-03-08 13:02:35 +01:00
Morris Jobke
236086c457
Merge pull request #8335 from nextcloud/remove-unused-import
...
Remove unused import statements
2018-02-14 22:23:07 +01:00
Morris Jobke
d3d045dd5c
Remove unused import statements
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-14 16:55:43 +01:00
Morris Jobke
e2974f1133
Simplify return statement
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-13 21:55:24 +01:00
Robin Appelman
9d6d23d1f7
keep previous exception when transforming to dav exception
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-02-07 13:34:30 +01:00
Roeland Jago Douma
9896b15ec8
Only handle encrypted property on folders
...
Exposing the encrypted property is required for E2E. However, there is
no need to expose this on files as then it is server side encryption
(which the clients don't care about).
Better to not confuse the output.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-01-30 12:25:49 +01:00
Morris Jobke
eb51f06a3b
Use ::class statement instead of string
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-29 12:03:47 +01:00
Morris Jobke
c005fc6755
Cleanup unused code
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 15:25:19 +01:00
Morris Jobke
c1e4f9f305
Use type casting instead of *val() method
...
It should be up to 6x faster
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 11:35:42 +01:00
Morris Jobke
0a56d2185e
Return value immediately instead of assigning to a one-time variable
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 00:02:03 +01:00
blizzz
c7d9e5fd63
Merge pull request #7354 from nextcloud/refacor-update-page-print
...
Refactor method to check if update is needed
2018-01-22 22:50:05 +01:00
Morris Jobke
876238ce8b
Merge pull request #7533 from nextcloud/oc-28545-handle-oc-total-length-in-new-chunking
...
[oc] Handle OC-Total-Length in new chunking
2018-01-03 16:18:24 +01:00
Morris Jobke
0b4d18673e
Do not log user errors as log level 4
...
* hides log entries for the case the parent folder does not exist
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-03 11:58:55 +01:00
Thomas Müller
8c5d656f3b
Handle OC-Total-Length in new chunking
...
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-12-15 14:46:36 +01:00
Georg Ehrke
6802e2b59a
Principal search: Take sharing settings into account
...
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2017-12-11 16:04:55 +01:00
Christoph Seitz
787e3d51b4
Fix functions to search for principals in the backend.
...
Add a "searchPrincipals" function to the NC principal backend.
Fix the "findByUri" function to respect the prefixPath.
Signed-off-by: Christoph Seitz <christoph.seitz@posteo.de>
2017-12-11 16:04:55 +01:00
Morris Jobke
5b20600da9
Merge pull request #7313 from nextcloud/ensure-that-x-oc-mtime-header-is-an-integer-with-chunked-uploads
...
Ensure that X-OC-MTime header is an integer with chunked uploads
2017-12-11 15:07:05 +01:00
Roeland Jago Douma
d2fe30d464
Fix tests
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-12-04 15:23:20 +01:00
Roeland Jago Douma
c8a29ec942
A failed storage is a not available storage
...
We have to double check. Since getting the info of the root returns a
generic entry. But actually the stroage is not available. Else we get
very weird sync and web behavior.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-12-04 15:23:11 +01:00
Morris Jobke
f22e02cd79
Refactor method to check if update is needed
...
There was only one call, that actually needed the parameter to be set to true. So this change moved the print of the page to that location and replaces all other occurences with a direct call to the underlying OCP API.
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-30 16:04:07 +01:00
Daniel Calviño Sánchez
2a7b1bae10
Reject X-OC-MTime header if given as a string with hexadecimal notation
...
In PHP 7.X hexadecimal notation support was removed from "is_numeric",
so "sanitizeMtime" directly rejected those values; in PHP 5.X, on the
other hand, "sanitizeMtime" returned 0 when a string with hexadecimal
notation was given (as it was the behaviour of "intval"). To provide a
consistent behaviour between PHP versions, and given that it does not
make much sense to send X-OC-MTime in hexadecimal notation, now
X-OC-MTime is always rejected if given as a string with hexadecimal
notation.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-11-28 01:08:52 +01:00
Thomas Müller
ffe034abb0
Don't use runInSeparateProcess
...
Directly calling "header" in the PHPUnit process causes the "Cannot
modify header information - headers already sent by" error to be thrown.
Instead of running the test in a separate process, which is slower, this
commit wraps the call to "header" in a method that can be mocked in the
tests.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-11-27 20:39:45 +01:00
Daniel Calviño Sánchez
2af3d8a9b2
Make possible to provide a specific HTTP request object to File
...
This will be used in a following commit to test how the X-OC-MTime
header is handled.
This commit is based on the "make File::put() more testable" commit
(included in 018d45cad97e0) from ownCloud by Artur Neumann.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-11-27 20:39:41 +01:00
Daniel Calviño Sánchez
01e346b2ae
Ensure that X-OC-MTime header is an integer also with chunked uploads
...
This commit extends the changes introduced in pull request #3793 also to
chunked uploads.
The "sanitizeMTime" method name is the same used in the equivalent pull
request to this one from ownCloud (28066).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-11-27 20:37:51 +01:00
Morris Jobke
573551253e
Merge pull request #7308 from nextcloud/do-not-log-InvalidSyncToken
...
Log InvalidSyncToken on DAV in debug level
2017-11-27 17:27:41 +01:00
Morris Jobke
88905c6293
Log InvalidSyncToken on DAV in debug level
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-27 16:37:11 +01:00
Morris Jobke
26a5fff423
Log NotImplementedException on DAV in debug level
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-27 16:17:01 +01:00
Björn Schießle
f347e2e4a6
Merge pull request #7047 from nextcloud/add-support-for-files-with-no-permissions
...
Add support for files with no permissions
2017-11-20 16:15:52 +01:00
Morris Jobke
0eebff152a
Update license headers
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Daniel Calviño Sánchez
555d582f35
Return whether the file is readable or not in the DAV permissions
...
Until now it was safe to assume that every file was readable by its
owner, so there was no need to return whether the file was readable or
not. However, with the introduction of end to end encryption that is no
longer the case, and it is now necessary to explicitly provide that
information.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2017-11-02 19:37:00 +01:00
Joas Schilling
7c53f921a9
Use ::class to avoid errors
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-10-13 12:36:20 +02:00
Joas Schilling
fd5465d509
Fix class name, regression from 44cf67accd
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-10-13 12:35:52 +02:00
Roeland Jago Douma
ab63c89ab3
Fix quota calculation on new dav upload endpoint
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-09-13 19:28:38 +02:00
Morris Jobke
1724fed8c5
Merge pull request #5415 from nextcloud/search-cache-node
...
cache nodes from search results
2017-09-06 10:16:01 +02:00
Bjoern Schiessle
e83e1c7c23
add propfind to detect encryption status
...
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2017-08-28 14:02:25 +02:00
Robin Appelman
37e8b698f7
cache nodes from search results
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-08-26 10:18:19 +02:00
Morris Jobke
fc12bd0be6
Do not log WebDAV maintenance mode exception
...
Log the maintenance mode exception only in debug level. Fixes #6124
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-08-15 15:03:39 +02:00
Joas Schilling
231bb47ae6
Fix file size comparison
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-08-01 13:56:12 +02:00
Joas Schilling
89238164e1
Fix comparisons in the dav app
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-08-01 13:55:07 +02:00
Roeland Jago Douma
61a6adff14
Fix sabre test
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-08-01 08:20:17 +02:00
Roeland Jago Douma
fc369dd86e
[DAV] Fix URLUtil::splitPath usage
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-08-01 08:20:17 +02:00
Lukas Reschke
e1f52fc901
Stricter phan config fixes
...
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-08-01 08:20:13 +02:00
Joas Schilling
b27819785e
Don't log passwords on dav exceptions
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-06-29 17:20:10 +02:00
Morris Jobke
eb9aedf44b
Enhance the logging if the part file can not be renamed
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-06-22 17:50:14 -05:00
Joas Schilling
698a7cb7f0
Merge pull request #5124 from nextcloud/allow-dirlisting-with-unreadable-items
...
Allow dir-listing also when one child is blocked by access control
2017-06-16 10:47:08 +02:00
Lukas Reschke
633396001f
Prevent sending second WWW-Authenticate header
...
Overrides \Sabre\DAV\Auth\Backend\AbstractBearer::challenge to prevent sending a second WWW-Authenticate header which is standard-compliant but most DAV clients simply fail hard.
Fixes https://github.com/nextcloud/server/issues/5088
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-06-13 13:54:52 +02:00
Joas Schilling
d0c614a322
Allow dir-listing also when one child is blocked by access control
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-05-26 15:54:39 +02:00
Lukas Reschke
639ba526d0
Adjust realm from SabreDAV to Nextcloud
...
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-05-18 21:38:55 +02:00
Lukas Reschke
f93db724d7
Make legacy DAV backend use the BearerAuth backend as well
...
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-05-18 21:19:39 +02:00
Lukas Reschke
df3909a7c3
Use Bearer backend for SabreDAV
...
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-05-18 20:49:10 +02:00
Lukas Reschke
5f71805c35
Add basic implementation for OAuth 2.0 Authorization Code Flow
...
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-05-18 20:49:03 +02:00
Roeland Jago Douma
cef2110263
Revert "fix objectstore rename"
...
This reverts commit 5334a3dc33
.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-05-15 13:59:18 +02:00
Robin Appelman
9d8936c5bf
fix error when browsing the dav root
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-05-08 14:34:36 +02:00
Morris Jobke
49e958fa12
Enforce type hints in dav app
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-04 19:32:22 -03:00