Robin Appelman
63fb33538c
fix unencrypted_size for folders when scanning the filesystem with encryption enabled
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 16:48:10 +07:00
Robin Appelman
c9e4e30523
clear encrypted flag when moving away from encrypted storage
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-01 15:36:37 +07:00
Côme Chilliet
c60182065f
Merge pull request #34773 from nextcloud/artonge/feat/dispatch_entry_removed_event_for_all_entries
...
Dispatch event for all removed entries
2023-03-21 11:42:18 +07:00
Joas Schilling
4bdc5834fa
Make sure name and path are strings
...
Otherwise Oracle returns NULL for empty strings and PHP 8.2
throws on null in string functions like trim() and md5()
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-02-02 12:05:22 +07:00
Joas Schilling
c27c9fac98
Try fixing Oracle
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-02-02 12:05:21 +07:00
Louis Chemineau
2830eeac7e
Dispatch event for all remove entry
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-01-31 13:30:10 +07:00
Robin Appelman
de63f6363f
fix updating size when folder is empty
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-08-16 13:54:26 +07:00
Robin Appelman
1374cbee3e
store unencrypted size in the unencrypted_size column
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-08-16 13:54:26 +07:00
Robin Appelman
5e375d9092
Revert "store unencrypted size in the unencrypted_size column"
...
This reverts commit 8238582e59 .
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-08-16 12:07:14 +07:00
Côme Chilliet
cb271b759e
Fix dynamic property creations in test files
...
This fixes warnings in PHP 8.2
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-08-01 15:07:53 +07:00
luz paz
368f83095d
Fix typos in lib/private subdirectory
...
Found via `codespell -q 3 -S l10n -L jus ./lib/private`
Signed-off-by: luz paz <luzpaz@github.com>
2022-07-27 08:52:17 +07:00
Jonas
7d07e06bfe
Check whether entry is of type ICacheEntry in Cache->remove()
...
In some scenarios (file not in cache, but partial data of it in the
object), Cache->get() might return an array, which leads to errors like
"Call to a member function getId() on array".
So check whether the returned entry is of type ICacheEntry before doing
operations on it in Cache->remove().
Fixes : #33023
Signed-off-by: Jonas <jonas@freesources.org>
2022-06-29 10:47:07 +07:00
Robin Appelman
8238582e59
store unencrypted size in the unencrypted_size column
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-06-02 16:07:00 +07:00
Côme Chilliet
ea23523c70
Adapt more code to migration to LoggerInterface
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-03-24 16:21:25 +07:00
acsfer
074a9a5e88
Switch logical operators
...
Unless there is a good reason to keep actual ones 👀
2021-12-03 16:05:19 +07:00
John Molakvoæ
63d3931e80
Merge pull request #29281 from vijfhoek/master
2021-11-01 11:29:37 +07:00
Carl Schwan
bfa60aaf27
Fix permissions when copying from ObjectStorage
...
Make sure that when a user copy a file from a directory they don't have
all permissions to a directory where they have more permissions, the
permissions are correctly set to the one from the parent taget folder.
This was caused by the ObjectStoreStorage::copyFromStorage using
the jailed storage and cache entry instead of the unjailed one like other
storages (the local one).
Steps to reproduce
+ Use object storage
+ Create a groupfolder with one group having full permission and another one
who can just read files.
+ With an user who is in the second group, copy a file from the groupfolder to
the home folder of this user.
+ The file in the home folder of the user will be read only and can't be deleted
even though it is in their home folder and they are the owner. In oc_filecache,
the permissions stored for this file are 1 (READ)
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-10-28 13:29:50 +07:00
Sijmen Schoon
34600c78bb
Move query outside the loop and reduce chunk size to 1000
...
This involved changing CacheQueryBuilder\whereParentIn to take a
parameter name, renaming the function accordingly.
Signed-off-by: Sijmen Schoon <me@sijmenschoon.nl>
2021-10-17 20:57:28 +07:00
Sijmen Schoon
c959bf2b42
Limit parameter count per query in Cache.removeChildren
...
Signed-off-by: Sijmen Schoon <me@sijmenschoon.nl>
2021-10-17 19:10:58 +07:00
Carl Schwan
28970563a2
Remove some mentions of ownCloud from our api documentation
...
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-07-29 15:56:30 +07:00
Robin Appelman
362cb2a11f
inject SearchBuilder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:23:08 +07:00
Robin Appelman
5d1d53c42e
perform file search in a single query
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:29 +07:00
Robin Appelman
9774fb1573
use searchoperation for storage filter instead of db expression
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:25 +07:00
Robin Appelman
e198dc1b20
rework search api to allow searching on multiple caches at once
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:22 +07:00
John Molakvoæ (skjnldsv)
215aef3cbd
Update php licenses
...
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +07:00
John Molakvoæ (skjnldsv)
2074d87d0c
Catch invalid cache source storage path
...
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-03-24 10:36:51 +07:00
Robin Appelman
50e374c12f
only require user to be set in a query that handles tags
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-18 17:16:28 +07:00
Robin Appelman
f1e2fb426e
Merge pull request #26013 from nextcloud/object-store-copy-cache-id
...
Return the fileid from `copyFromCache` and use it instead of doing an extra query
2021-03-16 16:11:17 +07:00
Robin Appelman
d7748e2b4d
verify that cache entry is valid
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 17:23:02 +07:00
Robin Appelman
d2bcb57a54
add ICopyFromCache trait to expose existing implementation
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 17:22:36 +07:00
Robin Appelman
a44aab11f7
do cachejail search filtering in sql
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:30:46 +07:00
Christoph Wurst
8b64e92b92
Bump doctrine/dbal from 2.12.0 to 3.0.0
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-01-08 11:45:19 +07:00
Christoph Wurst
9ce3ea3368
Update license headers
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-30 14:07:05 +07:00
Roeland Jago Douma
4973f9b952
Merge pull request #24715 from nextcloud/bug/noid/limit-get-incomplete-to-1
...
Limit getIncomplete query to one row
2020-12-21 09:15:10 +07:00
Christoph Wurst
d89a75be0b
Update all license headers for Nextcloud 21
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-16 18:48:22 +07:00
Daniel Kesselberg
e0e76bb784
Limit getIncomplete query to one row
...
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-12-15 21:42:26 +07:00
Robin Appelman
aef1cdba03
code style and dispatchTyped
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-12-02 16:15:02 +07:00
Robin Appelman
88f35d52d2
rename cache event to follow new naming standards
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-11-26 15:39:46 +07:00
Robin Appelman
23fb497ff5
extend cache events
...
- adds cache remove event
- expose storage id in event
- emit events during cache move
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-11-26 15:22:03 +07:00
Joas Schilling
cffad62771
Empty string is returned as null, but empty string in file cache is the root and exists
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-10 15:35:43 +07:00
Joas Schilling
8027dcbc6f
Don't leave cursors open when tests fail
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-09 12:28:17 +07:00
Morris Jobke
99c9423766
Remove @suppress SqlInjectionChecker
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-16 15:53:56 +07:00
Robin Appelman
5af7d921a9
Make Cache::removeChildren non recursive
...
Currently the "add new files during scanning" call stack is smaller than
the "remove deleted files during scanning" call stack. This can lead to
the scanner adding folders in the folder tree that are to deep to be
removed.
This changes the `removeChildren` logic to be non recursive so there is
no limit to the depth of the folder tree during removal
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-08-20 15:37:02 +07:00
Christoph Wurst
cb057829f7
Update license headers for 19
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-29 11:57:22 +07:00
Christoph Wurst
1584c9ae9c
Add visibility to all methods and position of static keyword
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:51:06 +07:00
Christoph Wurst
caff1023ea
Format control structures, classes, methods and function
...
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.
This also removes and empty lines from method/function bodies at the
beginning and end.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +07:00
Christoph Wurst
14c996d982
Use elseif instead of else if
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 10:35:09 +07:00
Christoph Wurst
afbd9c4e6e
Unify function spacing to PSR2 recommendation
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 13:54:22 +07:00
Robin Appelman
d9184584e0
restart transaction when cache insert fails due to duplicate
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-04-01 14:17:34 +07:00
Robin Appelman
3fb32f6f3d
reuse known parentId when inserting cache entries in scanner
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-04-01 14:14:52 +07:00
Roeland Jago Douma
5dba8d318d
Fix search limit to home
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-12-09 20:38:13 +07:00
Christoph Wurst
5bf3d1bb38
Update license headers
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +07:00
Robin Appelman
c62637da8b
Allow filtering the search results to the users home storage
...
This is done by adding a
```xml
<d:eq>
<d:prop>
<oc:owner-id/>
</d:prop>
<d:literal>$userId</d:literal>
</d:eq>
```
clause to the search query.
Searching by `owner-id` can only be done with the current user id
and the comparison can not be inside a `<d:not>` or `<d:or>` statement
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-12-03 13:49:37 +07:00
Roeland Jago Douma
68748d4f85
Some php-cs fixes
...
* Order the imports
* No leading slash on imports
* Empty line before namespace
* One line per import
* Empty after imports
* Emmpty line at bottom of file
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-11-22 20:52:10 +07:00
Robin Appelman
4c97181128
filter out empty filecache extension values
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-11-13 12:39:52 +07:00
Robin Appelman
066faaec05
fix folder delete
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-11-13 12:39:46 +07:00
Robin Appelman
43fa746ad9
dont create empty filecache extended rows
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-11-13 12:39:43 +07:00
Robin Appelman
842da3f183
store filecache extension fields
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-11-13 11:30:44 +07:00
Robin Appelman
d3b6dbc0bc
move more cache logic to querybuilder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-11-13 11:30:41 +07:00
Roeland Jago Douma
650927a822
Properly return an int in the getId function of the cache
...
fixes #16684
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-08-07 20:38:42 +07:00
Roeland Jago Douma
0487144b26
Remove deprecated searchByTag
...
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-07-26 12:29:19 +07:00
Robin Appelman
6a30c65a32
remove extra param in cache update call
...
param was leftover from earlier iterations of the "update event"
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-05-07 14:53:02 +07:00
Ari Selseng
d16cfb519e
Avoid calculating folder size for parent that needs scan.
...
Signed-off-by: Ari Selseng <ari@selseng.net>
2019-03-06 15:23:37 +07:00
Robin Appelman
092f78d7a4
add event for cache update
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-02-18 16:50:41 +07:00
Robin Appelman
748bcd407b
add event for inserting cache entries
...
this provides a reliable way for apps to listen to new files
without the need to of cache wrappers to hook into inserts themselves
(something which isn't 100% reliable)
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-02-07 15:51:30 +07:00
Robin Appelman
5d5cfefd35
return the correct value when trying to get a non existing item from cache by id
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-11-16 17:26:42 +07:00
Morris Jobke
93c62d78db
Fix UniqueConstraintViolationException while insert into oc_filecache
...
* fixes #6160 by not being prone to the race condition in insertIfNotExists
* fixes #12228 by not using a query that can result in a deadlock
* replaces the insertIfNotExists call with an insert which is wrapped into a try-catch block
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-11-12 14:43:28 +07:00
Morris Jobke
a661f043e1
Remove unneeded semicolon and parentheses
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 23:46:40 +07:00
Morris Jobke
16a558871c
Use proper code flow instead of not needed else branch
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-25 23:01:03 +07:00
Morris Jobke
be4e921306
Use basename() instead of self implementation
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-23 12:35:47 +07:00
Morris Jobke
0eebff152a
Update license headers
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +07:00
Morris Jobke
9a151056d0
Merge pull request #5812 from MrJeos/master
...
Fix for mb strlen
2017-07-22 11:04:24 +07:00
Robin Appelman
06a4d6b5b9
Also repair storage id's when repairing invalid entries
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-07-21 14:06:13 +07:00
Lukas Reschke
3d2600b039
Add Phan plugin to check for SQL injections
...
This adds a phan plugin which checks for SQL injections on code using our QueryBuilder, while it isn't perfect it should already catch most potential issues.
As always, static analysis will sometimes have false positives and this is also here the case. So in some cases the analyzer just doesn't know if something is potential user input or not, thus I had to add some `@suppress SqlInjectionChecker` in front of those potential injections.
The Phan plugin hasn't the most awesome code but it works and I also added a file with test cases.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-07-20 22:48:13 +07:00
Artem Kochnev
5abeb9519e
Fix for mb strlen
...
Error with moving files with long names in UTF-8
2017-07-20 17:29:50 +07:00
Robin Appelman
d4a7cfec7c
rename fun to func
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-03-30 11:15:06 +07:00
Robin Appelman
fee818f493
Add tests for query builder (i)like
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-03-30 11:15:03 +07:00
Robin Appelman
4b7bc2af0e
Move all children of a folder in a single query
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-03-30 11:14:48 +07:00
Roeland Jago Douma
4821c00ea8
Merge pull request #4004 from nextcloud/backport-27172
...
Remove SharedCache::getNumericStorageId to let CacheWrapper do it
2017-03-28 21:56:44 +07:00
Morris Jobke
b59f6dcca4
Merge pull request #3850 from nextcloud/search-order
...
Fix search ordering
2017-03-23 15:25:27 +07:00
Robin Appelman
2d02a4735c
Fix search ordering
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-03-23 15:24:50 +07:00
Vincent Petry
89c42a76c3
Remove SharedCache::getNumericStorageId to let CacheWrapper do it
...
The CacheWrapper will properly forward the call to the wrapped cache.
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-23 00:02:48 +07:00
Xuanwo
210f4106c4
[OC/Files/Cache]: Fix wrong usage of basename
...
Fix https://github.com/nextcloud/server/issues/3837
Signed-off-by: Xuanwo <xuanwo@yunify.com>
2017-03-14 13:27:17 +07:00
Robin Appelman
6d0c756ff9
dont allow empty wildcard search
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-03-13 16:06:19 +07:00
Robin Appelman
e61606a767
Allow searching for favorites
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-03-08 16:30:55 +07:00
Robin Appelman
df2063ee7b
Implement webdav SEARCH
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-03-01 14:06:39 +07:00
Frédéric Fortier
55a37c1db9
Refactor files' CacheEntry object creation to call cacheEntryFromData() all the time thus allowing proper casts to be done
...
Signed-off-by: Frédéric Fortier <frederic.fortier@oronospolytechnique.com>
2017-02-22 20:03:32 +07:00
Frédéric Fortier
cc511ac7b8
Typecast filecache 'storage' as int to return it as documented, fixes #3461
...
Signed-off-by: Frédéric Fortier <frederic.fortier@oronospolytechnique.com>
2017-02-20 22:23:27 +07:00
Robin Appelman
14a561ddad
always use numeric storage id in cacheentry
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2016-12-13 12:53:38 +07:00
Robin Appelman
86473306f3
fix cacheentry return wrong storage id
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2016-12-13 12:50:17 +07:00
Robin Appelman
2f03fcab4a
let the share backend get the node cacheentry to save queries
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2016-11-17 18:48:38 +07:00
Joas Schilling
0215b004da
Update with robin
2016-07-21 18:13:58 +07:00
Joas Schilling
ba87db3fcc
Fix others
2016-07-21 18:13:57 +07:00
Lukas Reschke
aba539703c
Update license headers
2016-05-26 19:57:24 +07:00
Roeland Jago Douma
dedf392751
Move \OC\Files to PSR-4
2016-04-24 21:37:35 +07:00