Commit graph

153 commits

Author SHA1 Message Date
Lukas Reschke
c427bf3b5d Make sure that the encrypted version is set
The code path called when using external storage with WebDAV is using `\OC\Files\Storage\Wrapper\Encryption::getMetaData` which did not contain the actual encrypted version inside the cache entry version. This lead to the following:

1. User uploaded a file
2. File is created and `\OC\Files\Storage\Wrapper\Encryption::getMetaData` is called. It has an empty `encryptedVersion` but sets `encrypted` to either `true` or `false`.
3. The call when updating the file cache will use the old version.
2016-03-31 18:06:37 +02:00
Lukas Reschke
676041ba7e Ensure that stored version is at least 1 for cross-storage copy
In case of a move operation from an unencrypted to an encrypted
storage the old encrypted version would stay with "0" while the
correct value would be "1". Thus we manually set the value to "1"
for those cases.

See also https://github.com/owncloud/core/issues/23078
2016-03-16 10:36:15 +01:00
Lukas Reschke
72c8187cbb Keep "encryptedVersion" when calling \OC\Files\View::copy
When calling `\OC\Files\View::copy` we should also keep the version to ensure that the file will always have the correct version attached and can be successfully decrypted.

To test this the following steps are necessary (from https://github.com/owncloud/core/issues/22781#issuecomment-191328982):

1. setup a new ownCloud 9.0 beta2
2. enable encryption
2. upload a docx (5.7MB large)
3. upload the same file again and overwrite the existing file
4. I can download the original file and the first version
5. I restore the first version
6. restored version can no longer be downloaded with the error described above

The manual cache operation in `\OCA\Files_Versions\Storage` is unfortunately necessary since `\OCA\Files_Versions\Storage::copyFileContents` is not using `\OCP\Files\Storage::moveFromStorage` in the case when an object storage is used. Due to the workaround added in 54cea05271 the stream is directly copied and thus bypassing the FS.
2016-03-03 14:15:36 +01:00
Bjoern Schiessle
834b51b83b recalculate unencrypted size if we assume that the size stored in the db is not correct 2016-02-23 15:09:46 +01:00
Robin Appelman
c3e4ced64a fix getNodeForPath for non existing part files 2016-02-11 17:22:40 +01:00
Robin Appelman
fb76d7de69 remove unused Storage->getLocalFolder 2016-02-05 16:48:08 +01:00
Robin Appelman
d2c579e167 fix quota wrapper 2016-01-14 12:54:42 +01:00
Thomas Müller
24271cf953 Merge pull request #21216 from owncloud/fopen-statcache
Clear SMB statcache after fopen
2015-12-28 10:21:26 +01:00
Morris Jobke
90b0831cec Use TempManager instead of tmpFolder 2015-12-18 11:19:53 +01:00
Roeland Jago Douma
1f715289bf Removed deprecated function OC_User::deleteUser
Replaced with proper OCP calls
2015-12-17 16:18:40 +01:00
Roeland Jago Douma
835911bce5 Removed deprecated private OC_User::createUser
All function calls are replaced with the recommended (which was already
the body of the function).
2015-12-17 16:18:40 +01:00
Robin Appelman
38a2467a4f test for statcache after fopen 2015-12-15 13:48:17 +01:00
Thomas Müller
757aa45db7 Adding more DB groups to test suits
Adding more DB groups to test suits
2015-11-30 10:55:06 +01:00
Thomas Müller
56170dd825 Further unit test suite tweats 2015-11-30 10:55:05 +01:00
Björn Schießle
6d0a324144 make sure that we update the unencrypted size for the versions 2015-11-04 10:59:05 +01:00
Bjoern Schiessle
e7232a848b versions should always use the keys of the original file, no need to create new one 2015-10-01 10:10:19 +02:00
Jörn Friedrich Dreyer
17ef187681 add is* storage tests 2015-09-23 23:41:39 +02:00
Martin
491250320a Replaces if ($file === '.' || $file === '..') by if(\OC\Files\Filesystem::isIgnoredDir($file)). Eases to find where this operation is used. 2015-09-22 17:53:15 +02:00
Bjoern Schiessle
9bd4f2d41e occ script to disable encryption and to decrypt all files again 2015-09-15 22:39:44 +02:00
Bjoern Schiessle
e51fe617d8 copy always file by file to encrypt/decrypt it if needed 2015-08-26 14:58:22 +02:00
Bjoern Schiessle
8c08dd0ac2 occ tool to encrypt all files 2015-08-26 14:58:22 +02:00
Vincent Petry
b3a1aef934 Merge pull request #13641 from owncloud/cache-storage-status
Store storage availability in database
2015-08-07 17:31:03 +02:00
Bjoern Schiessle
51a67a54e0 always update file cache, the cache can handle partial data correctly if the file doesn't already exists in the file cache 2015-07-31 17:14:32 +02:00
Joas Schilling
42baeb36dc Add a unit test for the disabled encryption case 2015-07-23 17:01:44 +02:00
Robin McCorkell
df19cabb44 Store storage availability in database
Storage status is saved in the database. Failed storages are rechecked every
10 minutes, while working storages are rechecked every request.

Using the files_external app will recheck all external storages when the
settings page is viewed, or whenever an external storage is saved.
2015-07-20 16:27:26 +01:00
Bjoern Schiessle
a2e2005e67 make sure that we always detect legacy files correctly 2015-07-17 13:30:08 +02:00
Thomas Müller
9120942bcf Merge pull request #16924 from owncloud/copy-recursive-polyfill
add recursive copy polyfill for storage backends
2015-07-06 17:05:36 +02:00
Thomas Müller
f55aa856ad Remove file mapper - was only use in Windows and never worked properly 2015-07-03 15:41:29 +02:00
Robin Appelman
a0c089a1c9 add unit tests 2015-07-03 13:44:03 +02:00
Joas Schilling
9b336765b6 Correctly check if the real file exists, otherwise try the part file 2015-06-26 13:17:23 +02:00
Björn Schießle
cce841c665 Merge pull request #17045 from owncloud/enc_improvements
encryption improvements
2015-06-23 14:30:21 +02:00
Bjoern Schiessle
95602d4069 make sure that we always read the header from the original file 2015-06-23 11:41:21 +02:00
Vincent Petry
e15dd783ab Workaround for empty dir deletion for SFTP
Explicitly clear the stat cache after deleting an empty folder to make
sure it is properly detected as deleted in subsequent requests.

This works around a problem with phpseclib where the folder is properly
deleted remotely but the stat cache was not updated.
2015-06-18 17:40:38 +02:00
Joas Schilling
bb0cb0aaec Merge pull request #15895 from owncloud/dav-getremoteetag
Get etag from remote OC server
2015-06-03 17:20:25 +02:00
Joas Schilling
d3e3a84cae Move the helpful method to the TestCase class 2015-06-03 12:33:29 +02:00
Vincent Petry
120588dd7a Disable update check test when testing wrappers
The checkUpdate test is intended for testing real storages, not
wrappers.
2015-06-02 15:14:37 +02:00
Vincent Petry
c4cb93e644 Added storage backend test for checkUpdate
This helps testing whether checkUpdate properly returns false when no
change exists
2015-06-02 11:42:03 +02:00
Thomas Müller
c700f42b68 Merge pull request #16517 from owncloud/remove-logo-wide
replace logo-wide on share page as well with better icon + text
2015-05-29 12:15:02 +02:00
Vincent Petry
e114d00242 Only use quota stream wrapper on "files"
Prevent using the quota stream wrapper on trashbin folders and other
metadata folders
2015-05-28 18:31:20 +02:00
Bjoern Schiessle
c63f2286c0 copy keys before we move a file between storages to make sure that the new target file reuses the old file key, otherwise versions will break 2015-05-22 15:41:28 +02:00
Jan-Christoph Borchardt
4e93d9e3a2 remove logo-wide from tests 2015-05-21 22:40:26 +02:00
Robin Appelman
2213d6597c add tests for copyFromStorage with same storage 2015-05-19 17:30:32 +02:00
Clark Tomlinson
f9b6ee86cd Merge pull request #16399 from owncloud/enc_rmdir_fix
[encryption] only try to delete file keys if it is a valid path
2015-05-18 11:09:36 -04:00
Bjoern Schiessle
efa674f10d only try to delete file keys if it is a valid path 2015-05-18 11:54:51 +02:00
Bjoern Schiessle
887be709f5 a new approach to display the error message 2015-05-18 10:15:17 +02:00
Bjoern Schiessle
0d5c7a11e2 use hooks to update encryption keys instead of the storage wrapper if a file gets renamed/restored, as long as we
are in the storage wrapper the file cache isn't up-to-date
2015-05-11 12:06:57 +02:00
Joas Schilling
aea734aaf1 Fix missing types on doc block and deduplicate the method name 2015-05-06 14:31:10 +02:00
Bjoern Schiessle
dc39bda870 move/copy from storage 2015-05-06 14:20:02 +02:00
Bjoern Schiessle
83ed4ee5b6 unit tests 2015-05-06 12:28:15 +02:00
Bjoern Schiessle
7089af96f2 make sure that we keep the correct encrypted-flag and the (unencrypted)size if a file gets copied 2015-05-05 16:17:14 +02:00