Commit Graph

866 Commits

Author SHA1 Message Date
Thomas Müller d9c41b00ab Introducing trait LocalTempFileTrait 2015-04-07 13:30:30 +02:00
Thomas Müller 8ffa6db110 fixing unit tests for stream wrapper 2015-04-07 13:30:30 +02:00
Thomas Müller 9d8c07850d fixing unencrypted file size 2015-04-07 13:30:30 +02:00
Thomas Müller c9d6ed3d7d in case the file exists we require the explicit module as specified in the file header - otherwise we need to fail hard to prevent data loss on client side 2015-04-07 13:30:30 +02:00
Thomas Müller cac83642f2 Finally fixing encryption with public share 2015-04-07 13:30:30 +02:00
Thomas Müller 137c135664 file_put_contents has to return the number of written bytes 2015-04-07 13:30:30 +02:00
Bjoern Schiessle 83cb382b3f pass file helper to encryption wrapper 2015-04-07 13:30:29 +02:00
Bjoern Schiessle e4895bda01 add helper class accessible for encryption modules to ask for a list of users with access to a file, needed to apply the recovery key to all files 2015-04-07 13:30:29 +02:00
Thomas Müller 1b42b492dc kill OC_FileProxy 💥 2015-04-07 13:30:28 +02:00
Thomas Müller 99255ff3a9 Fix - public sharing: in case on user is available - get it from the path 2015-04-07 13:30:28 +02:00
Bjoern Schiessle 0eee3a2618 remove unencrypted_size from the cache, size will contain the unencrypted size 2015-04-07 13:30:28 +02:00
Thomas Müller d185761d31 initializing some variables + update size after writing the headers 2015-04-07 13:30:28 +02:00
Thomas Müller 4441835d18 https://github.com/owncloud/core/pull/15305#discussion_r27382305
Conflicts:
	lib/private/files/stream/encryption.php
2015-04-07 13:30:28 +02:00
Thomas Müller 90487384f7 initializing some variables 2015-04-07 13:30:28 +02:00
Bjoern Schiessle 0c48b069ba call end() before closing the file 2015-04-07 13:30:28 +02:00
Thomas Müller 498625ea3a adding unit tests for stream wrapper 2015-04-07 13:30:28 +02:00
Thomas Müller a905f641b3 various fixes & start to unit test the encryption storage wrapper 2015-04-07 13:30:28 +02:00
jknockaert 3e6eb28ee3 Applying diff as of https://github.com/owncloud/core/pull/15303 2015-04-07 13:30:28 +02:00
Bjoern Schiessle cb9980823d core: small fixes 2015-04-07 13:30:27 +02:00
Bjoern Schiessle 810ca9105c implement rename and delete of encryption keys 2015-04-07 13:30:27 +02:00
Joas Schilling a8d1ede347 Fix the exception messages 2015-04-02 18:40:06 +02:00
Robin Appelman f585994c4b setup mount manager before wrappers 2015-04-02 13:28:36 +02:00
Robin Appelman 068c624b0d fix copying folder across devices 2015-03-31 13:50:11 +02:00
Thomas Müller 722e50a112 Merge pull request #15240 from owncloud/storage-wrapper-priority
add priority to storage wrappers
2015-03-27 15:18:44 +01:00
Bjoern Schiessle c6be1ba8d3 fix check if a file is excluded from encryption or not 2015-03-27 11:51:50 +01:00
Vincent Petry 670ca68453 Added stat cache for DAV storage
The stat cache stored known states of files/folders to avoid requerying
the DAV server multiple times.
2015-03-26 23:15:53 +01:00
Robin McCorkell c2909355bf Merge pull request #14925 from owncloud/ext-mountoptions-ui
Mount options GUI for external storage
2015-03-26 21:36:34 +00:00
Robin Appelman cb9ead7dde add priority to storage wrappers 2015-03-26 21:26:38 +01:00
Thomas Müller 232518ac54 Merge pull request #15234 from owncloud/encryption2_core
core part of encryption 2.0
2015-03-26 21:14:59 +01:00
Bjoern Schiessle ff9c85ce60 implement basic encryption functionallity in core to enable multiple encryption modules 2015-03-26 20:56:51 +01:00
Vincent Petry 58b4c2c0e5 Make sure mountOptions keep their data type
str_replace for $user substitution was converting the data type of
mountOptions to string. This fix prevents this to happen by making sure
only strings are processed by substitution.

Also added a int conversion when reading the watcher policy
2015-03-26 19:24:37 +01:00
Jenkins for ownCloud b585d87d9d Update license headers 2015-03-26 11:44:36 +01:00
Morris Jobke 24d0dfc727 Revert "FIX for webdav.mediencenter.t-online.de" 2015-03-26 00:56:06 +01:00
Oliver Kohl D.Sc. 9323285987 FIX for webdav.mediencenter.t-online.de
https://webdav.mediencenter.t-online.de returns invalid response code.

e.g.
{"reqId":"f9a1c394b98108e4e5ca62bf47829c64","remoteAddr":"81.189.45.224","app":"PHP","message":"Undefined offset: 2 at \/var\/www\/owncloud\/3rdparty\/sabre\/dav\/lib\/Sabre\/DAV\/Client.php#569","level":3,"time":"2015-03-25T18:25:48+00:00","method":"GET","url":"\/index.php\/apps\/files\/ajax\/getstoragestats.php?dir=External%2FT-Cloud%2FTests"}

e.g.
{"reqId":"3407d66672b3cef206b0af883e49bff4","remoteAddr":"46.74.125.245","app":"PHP","message":"Undefined index: {DAV:}getlastmodified at \/var\/www\/owncloud\/lib\/private\/files\/storage\/dav.php#563","level":3,"time":"2015-03-25T16:33:21+00:00"}
2015-03-25 21:29:29 +01:00
Robin Appelman d11f01fa0f Add `getNonExistingName()` to the node api 2015-03-24 15:00:36 +01:00
Vincent Petry 67160e0861 Do not automatically add "update" permission to shared mounts
In the past it seems the update permission was needed to be able to
rename shared mounts, but it doesn't seem to be the case any more.

Removing the "update" permission that used to be added automatically
fixes the read-only permission check when trying to overwrite a
read-only file over WebDAV.
2015-03-20 12:33:59 +01:00
Robin Appelman 73874ca27f Merge pull request #14704 from owncloud/storage-wrapper-mount
pass mountpoint to storage wrapper callback
2015-03-19 16:20:38 +01:00
Lukas Reschke bb5c5a3691 Remove unreqired backtick removal
Without this files with a ` (backtick) in the beginning of the filenames where simply not correctly referenced as the ` got removed. This can lead to all possible havoc situations.

Should get backported to stable8 and in future we might consider if it is really worth to backport such changes when it is just for SQLite 🙈

Regression of https://github.com/owncloud/core/pull/14734
2015-03-18 12:38:19 +01:00
Lukas Reschke f13216d275 Use `FILTER_UNSAFE_RAW` instead of `FILTER_SANITIZE_STRING`
`FILTER_SANITIZE_STRING` will still encode everything else.
2015-03-17 21:56:16 +01:00
Morris Jobke 997a7a2668 Merge pull request #14766 from owncloud/fix-insertifnotexists-poc
Allow specifying the compare-array for insertIfNotExists()
2015-03-16 10:31:36 +01:00
Thomas Müller 6927773648 Merge pull request #14776 from owncloud/fix-14629-master
verify the file name length not to exceed 255 characters + verify path d...
2015-03-16 09:58:41 +01:00
Thomas Müller 5855108e9b drop any fallback code related to curl - refs https://github.com/owncloud/core/pull/14838#issuecomment-78586447 2015-03-12 21:43:41 +01:00
Thomas Müller 80ef53eff0 verify the file name length not to exceed 255 characters + verify path during rename 2015-03-12 10:47:47 +01:00
Morris Jobke 82254ad5ef Merge pull request #13893 from owncloud/create-cachedir-on-user
Only make sure the cache directory exists when we use it
2015-03-11 16:49:24 +01:00
Robin Appelman 169031d1c5 fix factory test 2015-03-11 15:07:59 +01:00
Robin Appelman e1f2a6df94 Allow setting the watcher policy as mount option 2015-03-11 15:07:23 +01:00
Robin Appelman 7adda88786 Copy mount options to the storage 2015-03-11 15:06:48 +01:00
Robin Appelman 4f0f175f8b Allow getting all mount options as array 2015-03-11 15:06:12 +01:00
Robin Appelman e5c8fd37df pass mountpoint to storage wrapper callback 2015-03-11 15:06:12 +01:00
cmeh 4a0c649c8a Correct "one invalid characters" to "one invalid character"
Corrected "one invalid characters" to "one invalid character" in line 1575.
2015-03-11 09:59:42 +01:00
Joas Schilling 2af8fea2be Throw a RuntimeException in the cache aswell 2015-03-11 09:33:50 +01:00
Lukas Reschke 284bd6647c Merge pull request #14759 from owncloud/clean-up-code
Clean-up code and use proper exception types
2015-03-10 14:18:21 +01:00
Joas Schilling 2747a83a49 Get the id before using it 2015-03-09 22:37:49 +01:00
Joas Schilling 3115d66d60 Better save then sorry 2015-03-09 22:37:49 +01:00
Joas Schilling 940163e16b insertIfNotExists() for storage insertion 2015-03-09 22:37:49 +01:00
Joas Schilling c917ea183c Only check unique keys for the comparison on filecache insert & update otherwise 2015-03-09 22:37:49 +01:00
Lukas Reschke 2ac6f3a4f5 Clean-up code and use proper exception types 2015-03-09 11:48:55 +01:00
Thomas Müller 3623f14e73 no translation service in common storage class 2015-03-09 10:38:38 +01:00
Thomas Müller 33b11682f9 translate error messages 2015-03-09 10:38:38 +01:00
Lukas Reschke 2f18a09a20 Optimize loop 2015-03-09 10:38:38 +01:00
Thomas Müller 49e1a81eba fixing namespaces and PHPDoc 2015-03-09 10:38:37 +01:00
Thomas Müller 4bac595068 adding storage specific filename verification - refs #13640 2015-03-09 10:38:37 +01:00
Thomas Müller 1b08b7c726 use insertIfNotExist() in cache put 2015-03-06 15:32:58 +01:00
Joas Schilling 09ac2df1f8 Update scanFile() and scanChildren() to the new signature of the parent class 2015-03-04 09:22:53 +01:00
Robin Appelman f6182aa87e Allow disabling the cache updater 2015-02-27 17:14:16 +01:00
Morris Jobke b4dfd043d7 Merge pull request #14575 from owncloud/cache-rename-overwrite
Fix cache update when doing a rename that overwrites the target
2015-02-27 17:11:37 +01:00
Robin Appelman fc027bceb7 Fix cache update when doing a rename that overwrites the target 2015-02-27 16:39:58 +01:00
Joas Schilling 3a6a0501c4 Add "throws" lines to calling methods and interface aswell 2015-02-27 12:16:53 +01:00
Thomas Müller 7fe07e93fe Merge pull request #14437 from owncloud/node-check-fileinfo
Check if we have a proper fileinfo
2015-02-27 02:56:13 -08:00
Thomas Müller f72f9e0159 Merge pull request #14530 from owncloud/revert-14403
Revert "Updating license headers"
2015-02-27 00:39:29 -08:00
Vincent Petry 232de3bdc0 Delete target file for unsuccessful copy/rename 2015-02-26 15:11:37 +01:00
Morris Jobke 06aef4e8b1 Revert "Updating license headers"
This reverts commit 6a1a4880f0.
2015-02-26 11:37:37 +01:00
Robin Appelman f5befbeac6 Check if we have a proper fileinfo 2015-02-25 16:02:08 +01:00
Vincent Petry 9f6dcb9d3e Sabre Update to 2.1
- VObject fixes for Sabre\VObject 3.3
- Remove VObject property workarounds
- Added prefetching for tags in sabre tags plugin
- Moved oc_properties logic to separate PropertyStorage backend (WIP)
- Fixed Sabre connector namespaces
- Improved files plugin to handle props on-demand
- Moved allowed props from server class to files plugin
- Fixed tags caching for files that are known to have no tags
  (less queries)
- Added/fixed unit tests for Sabre FilesPlugin, TagsPlugin
- Replace OC\Connector\Sabre\Request with direct call to
  httpRequest->setUrl()
- Fix exception detection in DAV client when using Sabre\DAV\Client
- Added setETag() on Node instead of using the static FileSystem
- Also preload tags/props when depth is infinity
2015-02-23 22:27:23 +01:00
Jenkins for ownCloud 6a1a4880f0 Updating license headers 2015-02-23 12:13:59 +01:00
Thomas Müller 3a6b11d018 Merge pull request #13767 from owncloud/issue/13764-mimetype-racecondition
Use insertIfNotExists() and reload mimetypes after inserting one
2015-02-20 17:39:17 +01:00
Thomas Müller 84eb00e428 Merge pull request #14342 from owncloud/disallow-path-traversals-in-file-view
Disallow path traversals in file view
2015-02-19 10:27:04 +01:00
Thomas Müller b32d31a2f1 Merge pull request #13836 from owncloud/part-no-cache-update
Dont update the cache when working with part files
2015-02-19 00:08:10 +01:00
Lukas Reschke 46ca0fa481 Add some basic PHPDoc to functions 2015-02-18 18:17:33 +01:00
Lukas Reschke 41e5850450 Prevent directory traversals in ctr of \OC\Files\View
This prevents a misusage of \OC\Files\View by calling it with user-supplied input. In such cases an exception is now thrown.
2015-02-18 18:17:33 +01:00
Robin Appelman 134243d3e5 Dont lower the mtime of a folder when propagating changes 2015-02-13 14:30:05 +01:00
Lukas Reschke 9904b30070 Ensure that passed argument is always a string
Some code paths called the `normalizePath` functionality with types other than a string which resulted in unexpected behaviour.

Thus the function is now manually casting the type to a string and I corrected the usage in list.php as well.
2015-02-13 12:49:34 +01:00
Robin Appelman 9df18ffe75 only read permissions once 2015-02-11 13:11:31 +01:00
Robin Appelman 9bbfeada6b Only try to scan the children of directories 2015-02-11 13:11:31 +01:00
Robin Appelman dc6468c2aa Cast mtimes and size to int 2015-02-11 13:11:28 +01:00
Robin Appelman 4242dd0d9d Reuse cache data of existing files during scan 2015-02-11 13:08:28 +01:00
Morris Jobke 1bb6de7c1b Merge pull request #13425 from owncloud/phpdoc_cleanup
Cleanup of PHPDoc return types
2015-02-10 01:14:00 +01:00
Robin McCorkell a79757bc37 Store FileInfo::getType() result for future use 2015-02-09 16:34:11 +00:00
Lukas Reschke 0e604aa875 Merge pull request #13948 from owncloud/cache-move-transaction
Use transactions when renaming directory contents
2015-02-08 19:08:52 +01:00
Robin Appelman 6c00521e8b Use transactions when renaming directory contents 2015-02-06 15:20:53 +01:00
Lukas Reschke 4d91fa4c93 Normalize before processing 2015-02-06 15:03:29 +01:00
Robin Appelman adf9a4e4eb Dont bother updating the cache when working with part files 2015-02-05 13:59:50 +01:00
Robin Appelman 842d0e227c Dont update the cache after fopen 2015-02-05 13:47:32 +01:00
Robin Appelman 4a9c64e96b Only make sure the cache directory exists when we use it 2015-02-04 16:52:50 +01:00
Bjoern Schiessle 21c45925fe detect root of mountpoint also if the trailing slash is missed 2015-02-04 12:47:04 +01:00
Thomas Müller 9e222ec841 Merge pull request #13791 from owncloud/extstorage-fixdavexceptions
Fix DAV exceptions, some will still return false now
2015-02-03 13:31:32 +01:00
Joas Schilling a575dcf78f Use insertIfNotExists() and reload mimetypes after inserting one 2015-02-02 13:20:16 +01:00
Vincent Petry 5ade2854ee Fix DAV exceptions, some will still return false now
Since the Storage interface isn't ready to work directly with exceptions
like Forbidden and NotFound, the DAV storage has been adapted to still
return false when expected.
2015-01-30 12:02:23 +01:00
Morris Jobke acf0582029 Merge pull request #13752 from owncloud/closecursor1
Close cursor early in calculateFolderSize
2015-01-29 14:23:16 +01:00
Robin Appelman ddee63fa00 Fix resolving paths for views rooted in a file 2015-01-29 12:47:11 +01:00
Robin Appelman 8c9f1a982c Update the cache when renaming even if we dont emit hooks 2015-01-28 13:44:39 +01:00
Robin Appelman ce0aa02aac Dont do a cache rename if we cant delete the source file 2015-01-29 15:52:40 +01:00
Robin Appelman 2124540d1d Dont remove a file from cache if the delete operation failed 2015-01-29 15:39:56 +01:00
Morris Jobke 752b94d363 Merge pull request #13717 from owncloud/storage-donotwrapnullstorage
Prevent wrapping null storage
2015-01-28 01:00:20 +01:00
Morris Jobke 87b39e8f03 Merge pull request #13525 from owncloud/s2s-fixscanfileforbrokenstorage
Catch storage exception in scanner for remote shares
2015-01-28 00:31:37 +01:00
Vincent Petry 6d8985b671 Prevent wrapping null storage
Can happen when trying to instantiate external storages that have
incomplete config, where the constructor throws an exception (the
exception is caught in createStorage())
2015-01-27 17:40:08 +01:00
Vincent Petry acec40fe5a Merge pull request #13561 from owncloud/trash-finaldeletewhencrossstoragefix
Call final unlink in trash wrapper's storage
2015-01-27 17:05:38 +01:00
Bernhard Posselt b8769802df fix node interface 2015-01-26 15:58:41 +01:00
Vincent Petry 87ce64c24e Replace OC_Log::ERROR with OCP\Util::ERROR 2015-01-26 15:51:31 +01:00
Vincent Petry f6e644b43f Catch storage exception in scanner for remote shares
Whenever an exception occurs during scan of a remote share, the share is
checked for availability. If the storage is gone, it will be removed
automatically.

Also, getDirectoryContent() will now skip unavailable storages.
2015-01-26 13:59:49 +01:00
Robin Appelman 87a1b2bdc4 Preserve mtime when doing cross storage move 2015-01-23 15:11:27 +01:00
Robin Appelman 960ff4f136 Apply wrappers to existing mounts before registering it 2015-01-23 13:48:35 +01:00
Vincent Petry 5fb8a4715d removeStorageWrapper to unregister a storage wrapper 2015-01-23 12:20:54 +01:00
Vincent Petry 6fb553e92c Do not call wrapStorage if storate with same name added twice 2015-01-22 16:24:24 +01:00
Thomas Müller 65041440de check is mimetype is set - fixed #13452 2015-01-19 15:04:53 +01:00
Robin McCorkell 2b99fc76ec Cleanup of PHPDoc return types 2015-01-16 20:30:43 +00:00
Robin Appelman 2248e465af Remove children from the cache in one query 2015-01-15 17:26:12 +01:00
Thomas Müller 337c43ce92 Merge pull request #13317 from owncloud/partfile-fileinfo
Return valid fileinfo objects for part files
2015-01-14 22:39:19 +01:00
Morris Jobke c8fa85451c Merge pull request #13320 from owncloud/fix-php-doc-for-files-view
Fix annotations in file view
2015-01-13 18:05:00 +01:00
Morris Jobke 0a400b4577 drop unused parameter 2015-01-13 18:04:20 +01:00
Lukas Reschke d66facc762 Fix annotations in file view 2015-01-13 14:53:00 +01:00
Robin Appelman 96dff341e2 Return valid fileinfo objects for part files 2015-01-13 13:59:28 +01:00
Morris Jobke 7746ac519f drop dead code - ref #13301 2015-01-13 13:52:25 +01:00
Thomas Müller 543fa0d45b Merge pull request #13291 from owncloud/node-searchcommonbasepathfix
Fix searchCommon to properly match path name
2015-01-13 13:25:51 +01:00
Vincent Petry a2a7a60293 Merge pull request #13301 from owncloud/drop-etag-message
drop useless "!!! No reuse of etag" - fixes #13187
2015-01-13 12:24:24 +01:00
Lukas Reschke f0ac8a278a Use json_encode on string
It's better to encode the string to prevent possible (yet unknown) bugs in combination with PHP's type juggling.

Previously the boolean statements evaluated to either an empty string (false) or a not empty one (true, then it was 1). Not it always evaluates to false or true.

This also removes a stray - that was not intended there but shouldn't have produced any bugs. Just to increase readability.

Thanks @nickvergessen for spotting.

Addresses https://github.com/owncloud/core/pull/13235/files#r22852319
2015-01-13 11:08:18 +01:00
Morris Jobke 9b49b52fc6 drop useless "!!! No reuse of etag" - fixes #13187 2015-01-13 09:54:48 +01:00
Vincent Petry fcc3b3d5f7 Fix searchCommon to properly match path name
The internal path was matched without the last "/" which caused
"files_trashbin" to also match when the internal path was "files".

This adds the missing slash for the comparison.
2015-01-12 19:33:00 +01:00
Morris Jobke c91d47e5b3 Merge pull request #13224 from owncloud/simplify-is-valid-path-and-add-unit-tests
Simplify isValidPath and add unit tests
2015-01-10 17:35:40 +01:00
Morris Jobke 8057bc6646 Merge pull request #13236 from owncloud/use-isset-for-performance
Use isset() instead of strlen()
2015-01-10 16:32:50 +01:00
Lukas Reschke 310424db5d Use isset() instead of strlen()
Isset is a native language construct and thus A LOT faster than using strlen()

On my local machine this leads to a 1s performance gain for about 1 million paths. Considering that this function will be called a lot for every file operation this makes a noticable difference.
2015-01-10 12:06:51 +01:00
Lukas Reschke 7e11ca06f6 Cache results of `normalizePath`
`normalizePath` is a rather expensive operation and called multiple times for a single path for every file related operation.

In my development installation with about 9GB of data and 60k files this leads to a performance boost of 24% - in seconds that are 1.86s (!) - for simple searches. With more files the impact will be even more noticeable. Obviously this affects every operation that has in any regard something to do with using OC\Files\Filesystem.

Part of https://github.com/owncloud/core/issues/13221
2015-01-10 11:10:38 +01:00
Lukas Reschke 05615bfd47 Simplify isValidPath and add unit tests
The check for invalid paths is actually over-complicated and performed twice resulting in a performance penalty. Additionally, I decided to add unit-tests to that function.

Part of https://github.com/owncloud/core/issues/13221
2015-01-10 00:40:21 +01:00
Robin McCorkell 631d6571fd Merge pull request #13181 from owncloud/filecache-preventleadingslash
Trim leading or trailing slashes in file cache paths
2015-01-09 13:54:17 +00:00
Morris Jobke 800738f51a Merge pull request #12011 from owncloud/reuse-etag-default
Default to reusing etags in the scanner
2015-01-09 14:38:45 +01:00
Vincent Petry 888ce4d4f9 Fix cache jail to not duplicate slashes 2015-01-09 10:18:32 +01:00
Vincent Petry aa821ecc00 Trim leading or trailing slashes in file cache paths 2015-01-08 19:43:02 +01:00
Morris Jobke fd57820708 Merge pull request #13132 from aptivate/improve_debug_logging_messages
Improve debugging for ServiceUnavailable exceptions
2015-01-07 10:36:27 +01:00
Chris Wilson 402a3ed146 Improve debugging for ServiceUnavailable exceptions
I was getting a lot of these in my logs for no apparent reason, and file
uploads were failing:

	{"app":"webdav","message":"Sabre\\DAV\\Exception\\ServiceUnavailable: ","level":4,"time":"2015-01-06T15:33:39+00:00"}

In order to debug it, I had to add unique messages to all the places where
this exception was thrown, to identify which one it was, and that made the
logs much more useful:

	{"app":"webdav","message":"Sabre\\DAV\\Exception\\ServiceUnavailable: Encryption is disabled","level":4,"time":"2015-01-06T15:36:47+00:00"}
2015-01-06 15:59:38 +00:00
Jörn Friedrich Dreyer c738359a11 add paged provider 2015-01-02 10:28:41 +01:00
Thomas Müller 81243b0f5d adding getDirectDownload() to Wrapper 2014-12-28 17:17:14 +01:00
Thomas Müller 5b00bc1d6e Adding basement for the direct download url 2014-12-28 17:17:14 +01:00
Bernhard Posselt 8e37214346 add an interface for the root folder so apps have an interface to deal with storage
fix comments and newline

add newline
2014-12-21 20:52:34 +01:00
Morris Jobke 75e8b39826 Merge pull request #12879 from owncloud/mountconfig
Add mount specific options
2014-12-18 23:38:14 +01:00
Robin Appelman 9ddd5033d4 Movable mountpoints are always deletable 2014-12-17 16:09:28 +01:00
Robin Appelman fd85424742 Add getMountPoint to FileInfo 2014-12-17 14:03:50 +01:00
Robin Appelman 95a145f67f Load mount specific options from the mount config 2014-12-17 14:03:50 +01:00
Vincent Petry c6be491a89 Return file info from Node API 2014-12-15 12:10:54 +01:00
Morris Jobke 5b3971f002 Merge pull request #12639 from owncloud/bad_mtime_format
Fix formatting of bad dates from external storages
2014-12-13 10:07:10 +01:00
Robin McCorkell fdbb68a3c3 Return ? if mtime is 0 or -1
Tooltip contains 'Unable to determine date'. Fixes #6395
2014-12-12 23:54:18 +00:00
Vincent Petry 4b57892c4e Merge pull request #12778 from owncloud/searchbytags2
Added searchByTags to view, storage and cache
2014-12-12 14:27:19 +01:00
Vincent Petry b1bef5cc15 Merge pull request #12587 from owncloud/dav-logerrors
Log exceptions in DAV storage
2014-12-12 11:58:04 +01:00
Vincent Petry 3878c3782f Added searchByTag in cache jail wrapper 2014-12-12 11:48:42 +01:00
Vincent Petry 15ecb28d50 Make $userId mandatory for searchByTags
$userId is now a mandatory parameter for searchByTags.

Also fixed some places in the code where the argument was missing (Node
API and View)
2014-12-12 11:18:35 +01:00
Morris Jobke e969fe6b12 Merge pull request #12698 from owncloud/handle_readonly_shared_files
Handle readonly shared files
2014-12-12 08:34:28 +01:00
Vincent Petry 25dde7e93b Added searchByTags to view, storage and cache 2014-12-11 17:38:50 +01:00
Thomas Müller 80ae311329 Merge pull request #11892 from owncloud/remove_triggerupdate
Remove triggerupdate.php & add quiet option for CLI scanner
2014-12-10 16:17:29 +01:00
Vincent Petry ebba54d490 Fix numeric storage id for cache wrapper 2014-12-10 13:05:31 +01:00
Jörn Friedrich Dreyer 0f17486c1d make path absolute 2014-12-10 11:04:17 +01:00
Jörn Friedrich Dreyer 85176ec072 return correct result 2014-12-08 15:25:21 +01:00
Robin Appelman f4701d7721 Add public api for mount configurations 2014-12-04 16:47:27 +01:00
Jörn Friedrich Dreyer 7ef6df04da remove triggerupdate, ref #11872 2014-12-04 13:44:30 +01:00
Robin Appelman 672495a1a3 make \OC\Files\Node\Node implement the FileInfo interface 2014-12-04 13:27:08 +01:00
Vincent Petry bc12d28f23 Log exceptions in DAV storage
In some cases a "NotFound" might be expected, so just return false as
before. But for other exceptions, the exception is now logged.
2014-12-03 22:20:00 +01:00
Robin Appelman 1bbb18fe87 also clear statcache in mapped local 2014-12-02 16:39:03 +01:00
Robin Appelman db3f7238dd Clear statcache before getting the mtime from local storage backends 2014-12-02 14:25:49 +01:00
Vincent Petry 8db4dd7585 Merge pull request #12469 from owncloud/issue/12460-port-local-changes2mapped
Issue/12460 port local changes2mapped
2014-12-01 10:42:39 +01:00
Vincent Petry 35ab770b11 Close cursor early in calculateFolderSize
This method triggers additional queries in $this->update() so to avoid
potential database locks or delays, we close the cursor as soon as it is not needed any more
2014-11-28 09:35:31 +01:00
Robin Appelman 05a069c101 Merge pull request #12426 from owncloud/jail-mask-wrappers
Add Jail and PermissionsMask storage wrappers
2014-11-27 16:00:14 +01:00
Robin Appelman 33b64868d7 Add storage and cache wrappers to apply a permissions mask to a storage 2014-11-27 15:25:57 +01:00
Robin Appelman abb6e89c5d Add storage and cache wrappers to jail a storage to a subfolder 2014-11-27 15:25:53 +01:00
Joas Schilling 7761f0288e Also clearstatcache() in MappedLocal before using the stats
Local change 283c10f010
2014-11-27 14:59:10 +01:00
Joas Schilling 50f85bfd1f Check whether file exists before trying to touch() it
Local changes from d069ee8a8b
and 258ad38fd3
2014-11-27 14:59:09 +01:00
Joas Schilling c5427da76d Check return of disk_free_space before returning it
Local changes copied from ed83597371
and 25370fcb82
2014-11-27 14:59:08 +01:00
Joas Schilling 1062f4fe44 Check file existance in MappedLocal in hasUpdated()
Only fixed in Local by eeee9eacea
2014-11-27 14:59:07 +01:00
Joas Schilling b886d3d645 Make MappedLocal::isLocal() true like for Local
Missed in 788c8540aa
2014-11-27 14:59:07 +01:00
Joas Schilling 4f1bbc4fd5 Remove unused 2nd parameter of buildPath() and rename to getSourcePath() 2014-11-27 11:19:20 +01:00
Joas Schilling 20237fba47 Introduce getSourcePath() in Storage\Local to reduce the difference to MappedLocal 2014-11-27 11:19:18 +01:00
Joas Schilling 2c39aec8cb Replace deprecated constant with new class constant 2014-11-25 16:30:21 +01:00
Joas Schilling bb540722cd Use base class to reset the file mapper 2014-11-19 14:52:07 +01:00
Lukas Reschke 6535540dcd Check if the size field is available
In some cases the 'size' field is not available resulting in some PHP errors such as:

```json
{"reqId":"03548fd9e3d3aca15a5796b3b35d7b9d","remoteAddr":"::1","app":"PHP","message":"Undefined index: size at \/Users\/lreschke\/Programming\/core\/lib\/private\/files\/fileinfo.php#125","level":3,"time":"2014-11-17T21:38:57+00:00"}
```

This can be experienced when creating a new empty file and deleting it right away, then when going to the trash bin this error is thrown.
2014-11-17 22:39:40 +01:00
Morris Jobke 146cb920c9 Merge pull request #12218 from owncloud/issue/10991-fixes
Issue/10991 Make unit tests pass on windows
2014-11-17 16:44:45 +01:00
Joas Schilling 0ab973a3a6 Make it possible to cleanPath() absolute Windows paths 2014-11-17 10:48:15 +01:00
Lukas Reschke da31177a8f Remove debug statement
Either we throw an exception or we ignore it. But we should certainly not print this to the end-user...
2014-11-12 11:32:48 +01:00
Vincent Petry 4b943a4810 Fix root path handling for WebDAV ext storage
Added missing cleanPath() call that converts "/" to "" when calling
SabreDAV. This is needed because SabreDAV will discard its base URL when
passing "/".
2014-11-11 15:20:36 +01:00
Bjoern Schiessle f27b6b0ab8 don't scan part files 2014-11-07 15:20:51 +01:00
Robin Appelman d26a427f92 Also propagate etag changes when the watcher finds a changed file 2014-11-07 12:56:09 +01:00
Robin Appelman 16b0d52031 Default to reusing etags in the scanner 2014-11-06 18:34:10 +01:00
Vincent Petry 55658e7bb2 Merge pull request #11539 from owncloud/mount-setup-once
Only mount the storages for the user once
2014-10-31 10:42:29 +01:00
Vincent Petry 106b9eb55c Merge pull request #11409 from owncloud/watcher-reuse
Pass the cached data to the filesystem watcher
2014-10-29 16:38:16 +01:00
Robin Appelman 2974d4d380 Reset the users setup after clearing mounts 2014-10-28 15:13:29 +01:00
Robin Appelman 3f63f4b6b1 Only mount the storages for the user once 2014-10-27 18:50:28 +01:00
Robin Appelman 8de287f2ef Merge pull request #11763 from owncloud/stable-etags
Generate stable etags for local files
2014-10-27 15:30:30 +01:00
Robin Appelman 283c10f010 Generate stable etags for local files 2014-10-24 16:47:58 +02:00
Lukas Reschke b3a04840b5 Add type hinting to functions
It's only reasonable to have proper type hinting here which might even help us to catch bugs.
2014-10-24 14:13:40 +02:00
Robin Appelman 16cfca6a5f Better reuse of cache data for getFolderContents 2014-10-24 12:33:54 +02:00
Robin Appelman 0a3f57f832 Pass the cached data to the filesystem watcher 2014-10-24 12:32:55 +02:00
Jörn Friedrich Dreyer ca0e3fdfea throw exception in writeBack, the returned boolean is checked nowhere 2014-10-20 11:29:05 +02:00
Jörn Friedrich Dreyer 9b0f0df7f5 make skeleton compatible with objectstore
suspend encryption proxy when copying skeleton
2014-10-20 11:28:36 +02:00
Jörn Friedrich Dreyer 0254a3c406 make trashbin compatible with objectstore, replace glob with search in cache, make unknown free space work like unlimited free space 2014-10-16 10:15:43 +02:00
Vincent Petry 4650101674 Merge pull request #11548 from owncloud/extstorage-ocfields
Allow specifying protocol in ext storage OC config
2014-10-15 13:27:23 +02:00
Vincent Petry ab5149f5df Allow specifying protocol in ext storage OC config
Allow specifying a protocol in the host field when mounting another
ownCloud instance. Note that this was already possible with the WebDAV
config but this bug made it inconsistent.
2014-10-13 17:15:58 +02:00
Vincent Petry d485c0098d Retrieve storage numeric id earlier when still available
The numeric id is only available before the storage entry is deleted, so
get it at that time.
2014-10-13 15:52:48 +02:00
Vincent Petry 9dea79e341 Merge pull request #11305 from owncloud/ext-updateetagonmount
Update etag of parent dir when adding/removing ext storage mount points
2014-10-09 18:18:36 +02:00
Jörn Friedrich Dreyer 3427976bb6 strict comparison 2014-10-08 18:49:55 +02:00
Jörn Friedrich Dreyer aa3ad898a9 fix amazon s3 issues
folder size and mtime is always unknown in s3

more s3 fixes

make rescanDelay of root dir configurable, add on the fly update of legacy storage ids, !isset -> empty when checking strings

reduce number of http calls on remove and rmdir

fix typo
2014-10-08 18:49:47 +02:00
Vincent Petry 6585eaa5df Added failing unit tests for mount config hooks 2014-10-08 14:22:17 +02:00
Thomas Müller e5a111b80e Merge pull request #11285 from owncloud/dav-permissions-create
Fix dav permissions for folders
2014-09-26 09:21:32 +02:00
Robin Appelman ccb4475a8d Expose creatable permissions trough fileinfo 2014-09-25 14:00:13 +02:00
Robin Appelman f88021dbbc Don't keep the full info of all children in memory 2014-09-24 15:44:56 +02:00
Lukas Reschke 6eeb905871 Do only follow HTTP and HTTPS redirects
We do not want to follow redirects to other protocols since they might allow an adversary to bypass network restrictions. (i.e. a redirect to ftp:// might be used to access files of a FTP server which might be in a secure zone and not be reachable from the net but from the ownCloud server)

Get final redirect manually using get_headers()

Migrate to HTTPHelper class and add unit tests
2014-09-22 20:02:32 +02:00
Jörn Friedrich Dreyer f83689e1be in quota wrapper use === instead of ! for better readability and as in other wrappers 2014-09-22 11:35:42 +02:00
Jörn Friedrich Dreyer 561a7e47cd return boolean in Ciose::stream_seek 2014-09-22 11:33:55 +02:00
Jörn Friedrich Dreyer b752cb98d8 return boolean in OC::stream_seek 2014-09-22 11:20:15 +02:00
Robin Appelman 33f7af9207 Merge pull request #10958 from owncloud/db-ilike
Introduce cross-db ILIKE
2014-09-19 12:07:56 +02:00
Robin Appelman 0c03b2bdd5 Use ILIKE in cache search 2014-09-17 16:12:54 +02:00
Lukas Reschke 33c0d2f743 Fix mapping of relative paths 2014-09-17 11:38:10 +02:00
Robin Appelman 2f22e67570 Also check if the file itself is updatable 2014-09-17 11:35:16 +02:00
Robin Appelman d25a9a118f Check if a folder is deletable before we try to recursively delete it 2014-09-17 11:35:16 +02:00
Robin Appelman ab79caf29b Check if the parent is writable to check if a file is deletable 2014-09-17 11:35:16 +02:00
Robin Appelman fa2b385d33 Fix method name 2014-09-10 15:59:24 +02:00
Lukas Reschke c3d90b96c8 Merge pull request #10922 from owncloud/explicit-scan-transactions
Use bigger transactions when doing explicit file system scans
2014-09-09 23:32:32 +02:00
Jörn Friedrich Dreyer ed2414fd0d Merge pull request #10886 from owncloud/keep_fileid_on_move_in_objectstore
Keep fileid on move in objectstore, fixes #10848
2014-09-09 10:25:10 +02:00
Lukas Reschke fa718d2e2c Fix typo 2014-09-08 16:34:03 +02:00
Robin Appelman 644755df66 Use bigger transactions when doing explicit file system scans 2014-09-08 14:15:41 +02:00
Jörn Friedrich Dreyer 8488be4d03 Keep fileid on move in objectstore, fixes #10848 2014-09-05 13:25:59 +02:00
Robin Appelman e29b7e9335 Remove explicit propagate calls 2014-09-05 11:53:24 +02:00
Robin Appelman d0e83a71aa Update cache before post hooks 2014-09-05 11:53:24 +02:00
Robin Appelman 1d8a88dd1b Fix warning in homecache 2014-09-05 11:53:23 +02:00
Robin Appelman 850542c5d6 Refactor Cache\Updater to work outside of the users home 2014-09-05 11:53:23 +02:00
Jesus Macias 91c8174013 Fix code with previous comments 2014-09-03 18:21:24 +02:00
Jesus Macias 883649b69c Reset changes on 3rdparty submodule 2014-09-03 18:20:09 +02:00
Robin Appelman a9a37b5363 Don't automatically setup the filesystem the moment we load OC\Files\FileSystem 2014-09-02 16:15:42 +02:00
Thomas Müller 2e8026a7b5 Merge pull request #10619 from owncloud/issue/6722
Add a test to break the slugifyPath() with folder and file afterwards
2014-08-26 10:33:18 +02:00
Clark Tomlinson 6523c575f3 Merge pull request #10623 from owncloud/not-a-valid-resource-log-entries
Do not try to close the same resource multiple times
2014-08-25 12:52:06 -04:00
Joas Schilling 989da69cff Do not try to close the same resource multiple times 2014-08-25 15:31:43 +02:00
Joas Schilling 1846aebfff Use md5() of the original name instead of uniqid() for slugifying
Previously we used uniqid() here.
However this means that the behaviour is not reproducable, so
when uploading files into a "empty" folder, the folders name is
different.

If there would be a md5() hash collition, the deduplicate check
will spot this and append an index later, so this should not be
a problem.

Fix #6722
2014-08-25 15:06:12 +02:00
Joas Schilling b861e1d696 Fix code layout before fixing the function 2014-08-25 15:06:10 +02:00
Jörn Friedrich Dreyer ebf7758d10 Merge pull request #10595 from owncloud/swift-stream
Stream downloads from Swift object stores without downloading it first
2014-08-25 11:26:39 +02:00
Thomas Müller 0e8916b147 Merge pull request #7539 from owncloud/repair-legacystorageid
Added repair script to upgrade the legacy home storage ids
2014-08-22 14:22:39 +02:00
Robin Appelman 191a82e768 Stream downloads from Swift object stores without downloading it first 2014-08-22 14:11:36 +02:00
Vincent Petry 068f9d10f1 Added repair step for legacy storages 2014-08-20 23:14:05 +02:00
Morris Jobke b3b3354809 move to public namespace 2014-08-19 14:05:08 +02:00
Stephan Peijnik 5d7deefd95 Use tabs for indentation.
Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-08-19 13:55:43 +02:00
Stephan Peijnik 2df52e54d7 Fix STORAGE_* constants usage by moving those constants into \OC\Files\Filesystem.
As constants not defined within a class cannot be automatically found by the
autoloader moving those constants into a class makes them accessible to
code which uses them.

Signed-off-by: Stephan Peijnik <speijnik@anexia-it.com>
2014-08-19 13:55:35 +02:00
Thomas Müller 1c23f54d42 Merge pull request #10341 from owncloud/issue/9928
[Issue/9928] Problems with filemtime in MappedLocal Storage
2014-08-19 10:10:09 +02:00
Joas Schilling 4d32e3548b Ensure that filename is prefixed with a slash 2014-08-14 16:48:30 +02:00
Morris Jobke 987a0565fb Merge pull request #10395 from owncloud/close-filehandle-lib-files
Close open file handles in files library
2014-08-14 10:57:54 +02:00
Robin Appelman bba59bf815 Cast file id's to int so we can compare them properly 2014-08-13 19:18:34 +02:00
Morris Jobke c6bf51c457 Close open file handles in files library
ref #10392
2014-08-13 15:48:32 +02:00
Robin Appelman 174805f5e3 Merge pull request #9762 from owncloud/owner-public
Return the proper owner for home storages
2014-08-12 14:29:17 +02:00
Joas Schilling 564bf23c1b Do not filemtime() on "." directory. Use empty string instead
Fix #9928
2014-08-11 17:39:37 +02:00
Joas Schilling d7666d9d3d Remove doubled slash between folder and path 2014-08-11 16:50:52 +02:00
Thomas Müller 13d44f8f7f Merge pull request #10251 from owncloud/fix-dav-attributes-master
shared files/folders are not mounted
2014-08-11 14:40:47 +02:00
Bjoern Schiessle 6dda30b5a2 remove share permissions if user is excluded from sharing 2014-08-08 12:16:54 +02:00
Thomas Müller 520f6422ac Merge pull request #10079 from owncloud/Improve_scanner_message
Improved scanner error message
2014-08-07 16:09:52 +02:00
Thomas Müller 9d2cff50ed shared files/folders are not mounted 2014-08-07 16:01:13 +02:00
Robin Appelman f1091280de Merge pull request #10184 from owncloud/getbyid-node
Fix Folder::getById
2014-08-07 13:40:17 +02:00
Robin Appelman 12207ec0c7 Fix SharedCache::getPathById 2014-08-06 13:38:14 +02:00
Robin Appelman 1deb6aadd3 return null instead of throwing an exception 2014-08-06 12:06:41 +02:00
Robin Appelman bf8f910a32 Fix Folder::getById 2014-08-05 16:58:10 +02:00
Robin Appelman 244d4e1399 Make View->shouldEmitHooks more robust 2014-08-05 16:53:28 +02:00
Clark Tomlinson 26af116fcd Removing unnecessary switch statements in fopen methods. 2014-07-31 09:34:27 -04:00
Martin d975012ae6 Improved scanner error message 2014-07-31 13:12:35 +02:00
Robin Appelman e9de20952a Return the proper owner for home storages 2014-07-21 16:59:59 +02:00
Vincent Petry 3df7a83c72 Merge pull request #9406 from philfry/master
silently discard the response body, needed for apache/mod_dav and maybe ...
2014-07-21 12:22:06 +02:00
Robin Appelman 5a0397eb5e Fix renaming files in the root folder of a MappedLocal storage 2014-07-16 21:24:18 +02:00
icewind1991 d58c8d72cf Merge pull request #9550 from kofemann/dcache-fixes-for-upstream
storage: do not check file mode on rename
2014-07-16 16:06:14 +02:00
Robin Appelman c3991ae13e Use the correct path when building the FileInfo for the search result 2014-07-14 18:32:45 +02:00
Tigran Mkrtchyan 03f422153d files: storage: rename should check parent directories of old and new files
as described by POSIX.1-2008
(see http://pubs.opengroup.org/onlinepubs/9699919799/functions/rename.html)

Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
2014-07-10 14:58:59 +02:00
Robin Appelman 3e3d460729 use case insensitive LIKE when searching for files in mysql 2014-07-08 15:49:27 +02:00
Björn Schießle a544bd3a0f Merge pull request #9357 from owncloud/sharing_unshare_on_delete
[sharing] unshare childrens on delete
2014-07-04 17:42:52 +02:00
Jörn Friedrich Dreyer aeeae5f1b2 Merge pull request #8308 from owncloud/case_insensitive_search_oracle
use case insensitive linguistic sort and compare when connecting to oracle
2014-07-04 15:51:57 +02:00
Bjoern Schiessle e9f5730869 make sure that the umount hook always contains the path relative to data/user/files 2014-07-04 10:34:54 +02:00
Jörn Friedrich Dreyer b5545b81c6 make search case insensitive on postgres and oracle 2014-07-03 19:01:00 +02:00
Philippe Kueck ef114b6594 silently discard the response body, needed for apache/mod_dav and maybe other dav servers which return an html body 2014-07-03 12:04:38 +02:00
Vincent Petry ed29e7d160 Merge pull request #9329 from owncloud/sharing_check_target
don't move a share mount point into a different mount point
2014-07-02 21:01:03 +02:00
Robin Appelman edb67f9f4d Remove invalid mounts from the active fs 2014-07-02 15:00:12 +02:00
Bjoern Schiessle bb935978fa don't move a share mount point into a different mount point 2014-07-01 19:38:55 +02:00
Bjoern Schiessle 735eac6c9d add a explicit interface for the home storage 2014-07-01 17:31:33 +02:00
Robin Appelman d78a2a9f78 Add StorageNotAvailableException 2014-06-30 15:46:37 +02:00
Thomas Müller 9032ce4535 Merge pull request #9266 from owncloud/fix_objectstore_etag_update
always regenerate etag when writing back file to objectstore
2014-06-29 20:59:20 +02:00
icewind1991 1a3e698294 Merge pull request #9263 from owncloud/remote-share-update
Better detecting of remote changes for external shares
2014-06-27 19:31:18 +02:00
Jörn Friedrich Dreyer 23fa75f5ac always regenerate etag when writing back file to objectstore 2014-06-27 18:49:06 +02:00
Robin Appelman db3f0cee4a Fix parsing of webdav permissions 2014-06-27 17:28:56 +02:00
Robin Appelman 6f5d5b9a30 Also check for updated permissions for webdav storages 2014-06-27 17:27:47 +02:00
Robin Appelman 5b8c2ac750 Use the etag to check for updates in webdav storages where available 2014-06-27 17:10:46 +02:00
Vincent Petry fd8b5680dd Merge pull request #8383 from owncloud/object_storage
Object storage
2014-06-27 16:53:03 +02:00
Jörn Friedrich Dreyer 25dbbbadd3 use normalize path to convert '.' to '' in objectstorestorage 2014-06-27 15:00:29 +02:00
Jörn Friedrich Dreyer ab93f1949d update hasUpdated description, overwrtie testStat for objectstore test 2014-06-27 12:14:31 +02:00
Thomas Müller 171475b95a fix autoloader 2014-06-27 08:52:40 +02:00
Thomas Müller c745240543 Move \OC\Files\Storage\DAV to core in order to reduce inter-app dependencies 2014-06-27 08:52:28 +02:00
Vincent Petry 8526556110 Merge pull request #9206 from owncloud/occ-scan-user
Prevent running the files:scan command as the wrong user
2014-06-26 17:03:23 +02:00
Jörn Friedrich Dreyer f96a535f80 fix objectstore test execution 2014-06-26 11:30:00 +02:00
Robin Appelman 9a2ed86672 Prevent running the files:scan command as the wrong user 2014-06-25 15:22:49 +02:00
Jörn Friedrich Dreyer 8e6cb6dc54 delete object without downloading it first 2014-06-25 14:53:38 +02:00
Robin Appelman 113749bd96 really always take root of the substorage 2014-06-25 13:00:11 +02:00
Bjoern Schiessle 92a82f02b3 always take root of the substorage 2014-06-24 18:53:51 +02:00
Robin Appelman 92f2a430a8 Don't bother checking for external updates for objectstore storages 2014-06-24 14:48:59 +02:00
Robin Appelman eb97eee964 Only initialize the swift container when manipulating an object 2014-06-24 14:42:52 +02:00