Commit graph

173 commits

Author SHA1 Message Date
Carl Schwan
0c19c5c65a Fix search results filtering
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-25 10:10:12 +00:00
Robin Appelman
ff1029e8ef
[21] generate a better optimized query for path prefix search filters
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-10-18 15:39:24 +02:00
Robin Appelman
c0b701f7f1
make event constructor backwards compatible just in case
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-09-16 15:14:01 +02:00
Robin Appelman
1ed2550281
update @since for backport
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-09-13 18:01:28 +02:00
Robin Appelman
5e8e252a64 code style and dispatchTyped
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-09-13 15:56:44 +00:00
Robin Appelman
e9234782a2 rename cache event to follow new naming standards
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-09-13 15:56:42 +00:00
Robin Appelman
11e81b340d 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>
2021-09-13 15:56:41 +00:00
Robin Appelman
b3e238c731 dont apply jail search filter is on the root
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-07-29 14:40:00 +00:00
Robin Appelman
464aeb065c
properly use limit and offset for search in Jail wrapper
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-09 08:08:55 +02:00
Roeland Jago Douma
99e2e5f6b9
Merge pull request #26258 from nextcloud/backport/26198/stable20
[stable20] Handle limit offset and sorting in files search
2021-03-30 20:53:11 +02:00
Morris Jobke
3fe78684ad Log when a storage is marked as unavailable
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-03-25 16:12:12 +00:00
Robin Appelman
4b65a1dcd7
fix type hints
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:35:08 +01:00
Robin Appelman
4655f6feb1
only require user to be set in a query that handles tags
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-24 16:00:35 +01:00
John Molakvoæ (skjnldsv)
dfcf6ad106 Catch invalid cache source storage path
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-03-24 11:05:32 +00:00
Morris Jobke
4f18ff9815
Merge pull request #25944 from nextcloud/backport/25659/stable20
[stable20] catch notfound and forbidden exception in smb::getmetadata
2021-03-17 20:13:57 +01:00
Robin Appelman
436cd31bd2 verify that cache entry is valid
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:18:04 +00:00
Robin Appelman
9bb73574c3 also implement for FailedCache and NullCache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:18:03 +00:00
Robin Appelman
aaa4c071ed add ICopyFromCache trait to expose existing implementation
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 16:18:01 +00:00
Robin Appelman
f500e2396e
adjust tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:23 +01:00
Robin Appelman
7fd53b91c3
fix search in nested jails
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:22 +01:00
Robin Appelman
a20eb9a229
fix cachjail searching for root
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:22 +01:00
Robin Appelman
5d08beb3d2
do cachejail search filtering in sql
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-16 15:22:22 +01:00
Robin Appelman
326f7ac857 catch notfound and forbidden exception in smb::getmetadata
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-05 07:54:09 +00:00
Daniel Kesselberg
d22ff8624b Limit getIncomplete query to one row
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-12-21 08:17:46 +00:00
Joas Schilling
97b0402984
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-12 12:57:51 +01:00
Joas Schilling
19816fe85f Don't leave cursors open when tests fail
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-10 14:18:02 +00:00
Joas Schilling
adcc942553 Use query builder instead of OC_DB in OC\Files\*
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-09 11:01:09 +00:00
Joas Schilling
c71cc6824e Use Query builder function
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-07 15:57:45 +00:00
Joas Schilling
d111e88d4c Fix order of GREATEST for Oracle
As per https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions060.htm
Oracle uses the first value to cast the rest or the values.
So when the first value is a plain int, instead of doing the math,
it will cast the expression to int and continue with a potential 0.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-07 15:57:44 +00:00
Roeland Jago Douma
b0c04a3e0c
Merge pull request #22867 from nextcloud/shared-storage-init-less
Shared storage optimizations
2020-09-17 08:55:35 +02:00
Morris Jobke
99c9423766
Remove @suppress SqlInjectionChecker
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-16 15:53:56 +02:00
Robin Appelman
cfde74442c
optimize View::getPath if we already know the storage id
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-09-16 13:49:07 +02:00
Robin Appelman
244fd6ae49
disable update checking for shared storages
update checking is already handled by the share source

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-09-15 16:42:40 +02:00
Christoph Wurst
2a054e6c04
Update the license headers for Nextcloud 20
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-08-24 14:54:25 +02: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 +02:00
Morris Jobke
fedf9c69d9
Use matching parameter names form interfaces and implementations
Found by Psalm 3.14.1

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-08-19 18:16:35 +02:00
Robin Appelman
8c3b22859c
dont update mimetype when moving to trash
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-07-30 16:11:45 +02:00
Robin Appelman
c8cf2e8a5b
fix renameFromStorage messing with folder mimetype
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-07-23 20:31:35 +02:00
Robin Appelman
e9b5514186
prevent the root storage from accidentally scanning user folders
while this scan *should* never be triggered, it's good to have some failsafe to ensure
that the users home contents don't end up getting scanned in the root storage

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-06-11 15:41:33 +02:00
Christoph Wurst
cb057829f7
Update license headers for 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-29 11:57:22 +02:00
Robin Appelman
9735b5d61f
Add method to storage backends to get directory content with metadata
Currently you need to use `opendir` and then call `getMetadata` for
every file, which adds overhead because most storage backends already
get the metadata when doing the `opendir`.

While storagebackends can (and do) use caching to relief this problem,
this adds cache invalidation dificulties and only a limited number of
items are generally cached (to prevent memory usage exploding when
scanning large storages)

With this new methods storage backends can use the child metadata they
got from listing the folder to return metadata without having to keep
seperate caches.

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-04-20 15:45:04 +02:00
Christoph Wurst
734c62bee0
Format code according to PSR2
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:56:50 +02:00
Christoph Wurst
28f8eb5dba
Add visibility to all constants
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:54:27 +02: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 +02:00
Christoph Wurst
a7c8d26d31
Add visibility to all properties and move static keyword
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:48:31 +02: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 +02: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 +02: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 +02:00
Christoph Wurst
41b5e5923a
Use exactly one empty line after the namespace declaration
For PSR2

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 11:48:10 +02: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 +02:00