Commit Graph

288 Commits

Author SHA1 Message Date
Victor Dubiniuk d82df7e490
Construct path to the version file from the current directory and filename. Fixes #22450 2016-06-02 15:47:12 +02:00
Lukas Reschke aba539703c
Update license headers 2016-05-26 19:57:24 +02:00
Joas Schilling b57f3126eb Move files_versions to PSR-4 (#24571) 2016-05-12 09:49:15 +02:00
Joas Schilling 9491d0f65b
Add missing use statement 2016-04-25 13:22:54 +02:00
Joas Schilling 9ebae0bdeb
Chunk the users correctly in the trashbin and versions background job 2016-04-20 10:36:15 +02: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
Lukas Reschke c353d51810 Remove Scrutinizer Auto Fixer 2016-03-01 17:48:23 +01:00
Lukas Reschke 933f60e314 Update author information
Probably nice for the people that contributed to 9.0 to see themselves in the AUTHORS file :)
2016-03-01 17:25:15 +01:00
Bjoern Schiessle 4ef035cc61 make sure that the file name doesn't end with a trailing slash. Can for example happen single files shared across servers 2016-02-19 13:15:09 +01:00
Bjoern Schiessle ac1c3d27b7 get the actual user instead of a federated cloud id
$view->getUidAndFilename($filename); returns the federated cloud id in case of
a federated share. But in this case we need the local user who "owns" the file
which is the current logged in user in case of a federated share
2016-02-18 10:16:59 +01:00
Lukas Reschke 762636efcd Use cache directly instead of QB
In case somebody does not use oc_filecache
2016-02-10 12:30:39 +01:00
Lukas Reschke 5ccb9dfa7e Use database for keeping track of the version 2016-02-09 23:43:27 +01:00
Arthur Schiwon 3a796d1e15 Consolidate getQuota and setQuota methods in User instance 2016-02-09 17:16:43 +01:00
Arthur Schiwon d2d6644702 use int values and constants instead of strings 2016-02-08 18:16:27 +01:00
Arthur Schiwon b6e03fe261 versions provide more information when throwing hooks 2016-02-08 16:33:49 +01:00
Thomas Müller 6824704699 Merge pull request #21117 from owncloud/owner-file-exists
Only return an owner if the file exists + improved getUidAndFilename
2016-01-15 13:31:56 +01:00
Thomas Müller 682821c71e Happy new year! 2016-01-12 15:02:18 +01:00
Robin Appelman 94200b682c removed unused imports 2016-01-11 11:40:58 +01:00
Robin Appelman 282f67dad1 improve handling of non existing files in the trashbin 2016-01-11 11:40:58 +01:00
Robin Appelman 300eb54c87 de-deplicate getUidAndFilename 2016-01-11 11:40:58 +01:00
Morris Jobke fb87441fd9 Deduplicate version expire jobs
* versionSize is calculated anyway in the expire job - > dropped
* offset/neededSpace was needed for expiry before the file is moved to the versions -> now this is included already in the currently used space because the expiry job is defered to a point in time after the version creation
* fixes #21108
2015-12-10 11:21:28 +01:00
Scrutinizer Auto-Fixer 0f1be1b601 Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2015-12-07 20:08:20 +00:00
Lukas Reschke 8f09d5b67c Update license headers 2015-10-26 14:04:01 +01:00
Lukas Reschke 13e817e901 Throw exception on `getPath` if file does not exist
Currently the `getPath` methods returned `NULL` in case when a file with the specified ID does not exist. This however mandates that developers are checking for the `NULL` case and if they do not the door for bugs with all kind of impact is widely opened.

This is especially harmful if used in context with Views where the final result is limited based on the result of `getPath`, if `getPath` returns `NULL` PHP type juggles this to an empty string resulting in all possible kind of bugs.

While one could argue that this is a misusage of the API the fact is that it is very often misused and an exception will trigger an immediate stop of execution as well as log this behaviour and show a pretty error page.

I also adjusted some usages where I believe that we need to catch these errors, in most cases this is though simply an error that should hard-fail.
2015-10-25 17:58:21 +01:00
Robin Appelman 22c5c19376 handle versions expire for home storages with unlimited quota 2015-10-16 21:41:51 +02:00
Robin Appelman 54cea05271 Fix preserving file ids when restoring a file with object storage 2015-10-16 21:41:51 +02:00
Thomas Müller 4b31b349b8 Merge pull request #19595 from owncloud/fix-versions-log-entry
Reset to auto if not set
2015-10-06 13:45:35 +02:00
Morris Jobke b945d71384 update licence headers via script 2015-10-05 21:15:52 +02:00
Victor Dubiniuk 99f1112e33 Reset to auto if not set 2015-10-05 20:52:25 +03:00
Robin Appelman 943c5069d4 Lock files when rolling back version 2015-10-02 17:08:39 +02:00
Georg Ehrke b3ff773bbf delete cached preview when rolling back file's version
add random number using OC.parseQueryString and _.extend()

version rollback: add missing prefix to OC\Preview::post_delete

add test to assure that the rollback hook is called
2015-09-20 11:22:40 +02:00
Victor Dubiniuk e3c067c2e1 Correct method title. Add docblock 2015-09-16 17:22:17 +03:00
Victor Dubiniuk 1f7ac2c309 Postrebase cleanup 2015-09-15 21:12:49 +03:00
Victor Dubiniuk 0cefbd76b9 Add expiration for versions older than max 2015-09-15 21:12:39 +03:00
Victor Dubiniuk c3dc5b0317 Add method docblock 2015-09-15 17:08:54 +03:00
Victor Dubiniuk f46b434a12 Namespacing, reusing 2015-09-15 17:08:54 +03:00
Victor Dubiniuk c3e055549e Improvements 2015-09-15 17:08:54 +03:00
Victor Dubiniuk b95d1e6683 Add quota status to expiration check 2015-09-15 17:08:54 +03:00
Victor Dubiniuk 7ef937d8ad Add versions obligation 2015-09-15 17:08:54 +03:00
Vincent Petry 310d797284 Add versions tab to files sidebar
- move versions to a tab in the files sidebar
- added mechanism to auto-update the row in the FileList whenever values
  are set to the FileInfoModel given to the sidebar
- updated tags/favorite action to make use of that new mechanism
2015-09-03 16:47:24 +02:00
Roeland Jago Douma e84cffc063 Moved core apps to the capabilities manager
* Files
* Files_Sharing
* Files_Trashbin
* Files_Versions
2015-08-10 10:45:16 +02:00
Morris Jobke f63915d0c8 update license headers and authors 2015-06-25 14:13:49 +02:00
Vincent Petry 9a6d253af3 Abort expiration when file is gone
Sometimes a background job for versions expiration was scheduled for a
file that has been moved or deleted since.

This prevents showing useless warnings in the log and simply bail out.
2015-05-29 13:15:12 +02:00
Vincent Petry 033b3dac92 Use owner when expiring versions, not the logged in user 2015-05-13 18:40:35 +02:00
Vincent Petry 20d2d8d3dd Merge pull request #15881 from owncloud/share-moveversionsproperly
Fix version rename with files and folders
2015-05-11 18:24:34 +02:00
Joas Schilling 05fe2006ee Do not run method when the path is empty 2015-05-07 14:31:21 +02:00
Vincent Petry 972e189605 Use moveFromStorage instead of streamCopy when restoring version 2015-04-30 16:15:18 +02:00
Vincent Petry 2228faaa39 Fix version rollback to keep fileid 2015-04-30 16:15:18 +02:00
Vincent Petry 63e2a4a5fa Fix version rename with files and folders
- fix moving folder into another folder
- fix moving file or folder into shared folder as recipient
2015-04-27 13:17:03 +02:00
Thomas Müller 1b42b492dc kill OC_FileProxy 💥 2015-04-07 13:30:28 +02:00
Lukas Reschke c8c722bc6d Merge pull request #15129 from owncloud/version-command-bus
expire versions in a background command
2015-03-26 19:55:13 +01:00
Robin Appelman 1969c8d5c8 save uid instead of user object in command 2015-03-26 17:11:34 +01:00
Robin Appelman 176fba83ea Setup the filesystem in the expire command 2015-03-26 17:07:02 +01:00
Robin Appelman 7ec8f12ad4 expire versions in a background command 2015-03-26 17:07:01 +01:00
Jenkins for ownCloud b585d87d9d Update license headers 2015-03-26 11:44:36 +01:00
Morris Jobke 06aef4e8b1 Revert "Updating license headers"
This reverts commit 6a1a4880f0.
2015-02-26 11:37:37 +01:00
Jenkins for ownCloud 6a1a4880f0 Updating license headers 2015-02-23 12:13:59 +01:00
Bjoern Schiessle 15ae6b47ed replace hook with storage wrapper 2015-01-19 09:16:15 +01:00
Bjoern Schiessle d699d31518 make versions of shared files downloadable 2015-01-09 12:46:24 +01:00
Morris Jobke 0d4f0ab871 reduce OC_Preferences, OC_Config and \OCP\Config usage
* files_encryption
* files_versions
* files_trashbin
* tests
* status.php
* core
* server container
2014-12-08 22:42:37 +01:00
Joas Schilling 694003d147 Autoload lib files of versions app 2014-12-02 17:21:19 +01:00
Bjoern Schiessle ebe1d3df0a don't move versions if only the mount point was renamed 2014-10-31 16:42:54 +01:00
Lukas Reschke 206cb5ba63 Fix typo 2014-10-29 10:11:01 +01:00
Bjoern Schiessle 9d1be0bbaf get the source path and owner in a pre hook and the target path and owner in a
post hook
2014-10-29 10:11:01 +01:00
Bjoern Schiessle 8e077cf1a4 make sure that we always delete oldest first 2014-10-09 19:15:58 +02:00
Bjoern Schiessle b7ada5da57 make sure that the versions array contains the correct path 2014-08-05 17:25:55 +02:00
Bjoern Schiessle 1a797f90bb add unit test for rename and copy operation 2014-07-30 15:14:01 +02:00
Bjoern Schiessle dba2574c52 make sure that we always find all versions 2014-07-30 15:14:01 +02:00
Bjoern Schiessle c738f71657 make the versions and encryption app aware of the copy operation 2014-07-30 15:14:01 +02:00
Robin Appelman aab33b8b0e Remove deleted versions from the cache 2014-07-10 15:19:40 +02:00
Robin Appelman 18572b2367 Dont delete versions as local files 2014-07-07 15:49:08 +02:00
Bjoern Schiessle 8052d2901d initialize array 2014-06-18 13:23:53 +02:00
Bjoern Schiessle f4a183e753 wwe no longer have a versions table 2014-06-10 14:47:32 +02:00
Thomas Müller 8ee15025f0 Fix merge conflict 2014-06-03 19:05:21 +02:00
Bjoern Schiessle 7ad0fee0b5 let file cache handle the versions size 2014-06-02 18:55:13 +02:00
Morris Jobke dc36d30953 Remove all occurences of @brief and @returns from PHPDoc
* test case added to avoid adding them later
2014-05-19 17:50:53 +02:00
Robin McCorkell 6930ae22e4 Fix more missing or broken PHPDoc 2014-05-16 22:21:57 +01:00
Robin McCorkell c4f1de63a8 Fix PHPDoc in /apps 2014-05-16 22:21:57 +01:00
Thomas Müller 58857b8df5 @returns -> @return 2014-05-13 19:09:15 +01:00
Thomas Müller 4dd1a49a68 remove legacy aka deprecated code: OC_Filesystem 2014-05-12 16:20:07 +02:00
Georg Ehrke 9a5c2d0080 add preDelete hook for files_versions app 2014-03-11 14:17:08 +01:00
Scrutinizer Auto-Fixer adaee6a5a1 Scrutinizer Auto-Fixes
This patch was automatically generated as part of the following inspection:
https://scrutinizer-ci.com/g/owncloud/core/inspections/cdfecc4e-a37e-4233-8025-f0d7252a8720

Enabled analysis tools:
 - PHP Analyzer
 - JSHint
 - PHP Copy/Paste Detector
 - PHP PDepend
2014-02-19 09:31:54 +01:00
Thomas Müller c6f4f85e27 Merge branch 'master' into scrutinizer_documentation_patches
Conflicts:
	lib/private/migration/content.php
2014-02-18 18:31:33 +01:00
Robin Appelman 181bbd4325 Remove usage of legacy OC_Appconfig 2014-02-13 16:28:49 +01:00
Jörn Friedrich Dreyer 2a6a9a8cef polish documentation based on scrutinizer patches 2014-02-06 17:02:21 +01:00
Bjoern Schiessle a567f74d86 fix array order 2014-01-22 11:13:15 +01:00
Bjoern Schiessle 0b89a45f11 fix size calculation of getAllVersions() 2014-01-22 11:10:23 +01:00
Bjoern Schiessle 9efd07fbab isolate getExpireList function to make it testable 2014-01-21 16:22:08 +01:00
Thomas Müller 37e278f2a9 don't use the user id within the versions preview call as it could be used to access previews of another user 2014-01-21 13:50:56 +01:00
Vincent Petry ca57a849ff When reading the size of "files" mountpoints need to be excluded
The versions and trashbin app are now passing "includeMountPoints=false"
to "getFileInfo()" to make sure that the calculated total size doesn't
include mount points like Shared or external storage.

This is because the default call (legacy) used to return the size of
mount points as well.

Fixes #6731
2014-01-20 17:11:33 +01:00
Bjoern Schiessle 76fa7bab63 call getFileInfo to enforce a file cache entry for the new version, fix #6286 2014-01-15 11:37:47 +01:00
Bjoern Schiessle 348706854c use better coding style 2013-11-28 19:31:35 +01:00
Bjoern Schiessle eaedda2116 make sure that we don't try to access an already deleted files, fixes some file source not found warnings 2013-11-28 13:31:08 +01:00
Björn Schießle 34a8c3c4cd Merge pull request #6039 from owncloud/trashbin_move_file_to_owners_trash
move files to owners trash
2013-11-27 10:24:55 -08:00
Bjoern Schiessle f8fcd567a7 move files to owners trash 2013-11-25 16:51:31 +01:00
Bjoern Schiessle acf74b24f2 remove unused variable 2013-11-22 16:10:30 +01:00
Bjoern Schiessle c309067c81 use oc filesystem operations to calc the versions size. This makes sure that we can handle missing directories correctly 2013-11-19 12:23:14 +01:00
Georg Ehrke 238e4bc3eb implement delete hooks in file versions lib 2013-11-12 14:06:32 +01:00
Bjoern Schiessle c32c5979d8 Merge branch 'master' into versioning_preview_shared 2013-10-11 17:00:21 +02:00
Bjoern Schiessle a0de5dd325 some small fixes 2013-10-11 10:34:34 +02:00