Jonas
3fbd7a6602
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-30 12:24:01 +00:00
Robin Appelman
0edce619c8
tell mysql to ignore the sort index for search queries
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-04-25 11:56:48 +00:00
Joas Schilling
4eff6b1c81
Deduplicate storage ids in list before reusing
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-04 17:17:38 +00:00
Robin Appelman
73a8ea2d4e
background scan the source storage when a background scan on a storage jail is triggered
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-12-06 01:11:44 +01:00
Robin Appelman
c4fa59c540
properly handle cases where cache wrappers block access
...
`CacheWrapper::formatCacheEntry` can return false for files that should be filtered out
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-11-24 20:17:55 +01:00
Vincent Petry
a721d346b9
Normalize directory entries in Encoding wrapper
...
Directory entry file names are now normalized in getMetaData(),
getDirectoryContents() and opendir().
This makes the scanner work properly as it assumes pre-normalized names.
In case the names were not normalized, the scanner will now skip the
entries and display a warning when applicable.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-19 14:51:40 +00:00
Vincent Petry
2b4badf768
Move storage encoding compatibility warning logic
...
The encoding check for file names is now happening the Scanner, and an
event will be emitted only if the storage doesn't contain the encoding
compatibility wrapper.
The event is listened to by the occ scan command to be able to display a
warning in case of file name mismatches when they have NFD encoding.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-19 14:51:40 +00:00
Vincent Petry
787d7956cb
Normalize file name before existence check in scanner
...
The scanner would not find a NFD-encoded file name in an
existing file list that is normalized.
This normalizes the file name before scanning.
Fixes issues where scanning repeatedly would make NFD files flicker in
and out of existence in the file cache.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-11-19 14:51:39 +00:00
Sijmen Schoon
071eda7baa
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-11-01 11:08:32 +00:00
Sijmen Schoon
ec3b1ccd91
Limit parameter count per query in Cache.removeChildren
...
Signed-off-by: Sijmen Schoon <me@sijmenschoon.nl>
2021-11-01 11:08:31 +00:00
Carl Schwan
7bf4a45f49
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-30 00:18:26 +02:00
Robin Appelman
5f438375a9
more reliable return value for Watcher::checkUpdate
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-10-22 12:34:30 +00:00
Robin Appelman
d4fb676dd7
generate a better optimized query for path prefix search filters
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-10-07 15:19:58 +00:00
Lukas Reschke
34b5d979ff
Merge pull request #28583 from nextcloud/backport/28566/stable22
...
[stable22] use getGetUnjailedRoot to determine if jailed search needs the path filter
2021-08-25 13:21:41 +02:00
Robin Appelman
9e5440abc3
use getGetUnjailedRoot to determine if jailed search needs the path filter
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-24 12:52:27 +00:00
Robin Appelman
5444db1ebf
use case insensitive like when limiting search to jail
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-24 07:02:22 +00:00
Robin Appelman
1534b24e38
dont apply jail search filter is on the root
...
the extra '/' breaks things and the filter wouldn't do anything anyway except making the databases job harder
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-07-29 07:30:21 +00:00
Robin Appelman
362cb2a11f
inject SearchBuilder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:23:08 +02:00
Robin Appelman
66e10718c6
split of query building bits from searchhelper
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:40 +02:00
Robin Appelman
f938daa6e4
update tests and fix some edge cases around new search
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:36 +02:00
Robin Appelman
27e50b24aa
some cleanup and documentation
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:32 +02: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 +02: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 +02: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 +02:00
John Molakvoæ (skjnldsv)
215aef3cbd
Update php licenses
...
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +02:00
Robin Appelman
7ee528fc5a
properly use limit and offset for search in Jail wrapper
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-05-21 15:37:38 +02:00
Robin Appelman
ed2396b045
better cleanup of filecache when deleting an external storage
...
this way it can delete the cache entries even with per-user credentials
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-05-19 17:08:20 +02:00
Morris Jobke
81fef4ddee
Log when a storage is marked as unavailable
...
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2021-03-25 16:19:08 +01: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 +01: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 +01: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 +00:00
Vincent Petry
e559afb8d4
Merge pull request #25136 from nextcloud/cachejail-search-filter
...
do cachejail search filtering in sql
2021-03-15 17:45:30 +01:00
Robin Appelman
d7748e2b4d
verify that cache entry is valid
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 17:23:02 +01:00
Robin Appelman
c2fc3195dd
also implement for FailedCache and NullCache
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 17:22:43 +01: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 +01:00
Roeland Jago Douma
e6ef096e52
Merge pull request #25659 from nextcloud/smb-getmetadata-catch
...
catch notfound and forbidden exception in smb::getmetadata
2021-03-05 08:49:23 +01:00
Robin Appelman
b844293536
catch notfound and forbidden exception in smb::getmetadata
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-04 21:34:54 +01:00
Roeland Jago Douma
c3f1eb4f7f
Remove Redundantcasts
...
For #25839
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-04 14:44:04 +01:00
dependabot-preview[bot]
eb502c02ff
Bump nextcloud/coding-standard from 0.3.0 to 0.5.0
...
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard ) from 0.3.0 to 0.5.0.
- [Release notes](https://github.com/nextcloud/coding-standard/releases )
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nextcloud/coding-standard/compare/v0.3.0...v0.5.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-18 13:31:24 +01:00
Robin Appelman
0363af3790
move AbstractCacheEvent into OCP
...
otherwise we have concrete cache events in OCP extending non OCP classes
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-02-15 19:12:30 +01:00
Robin Appelman
e511a539b7
adjust tests
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:55:38 +01:00
Robin Appelman
5ae0be08b4
fix search in nested jails
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:30:54 +01:00
Robin Appelman
27f9df2e87
fix cachjail searching for root
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:30:50 +01:00
Robin Appelman
a44aab11f7
do cachejail search filtering in sql
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:30:46 +01: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 +01:00
Robin Appelman
205386b24e
ignore files that have no read permissions during scanning
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-06 17:27:31 +01:00
Christoph Wurst
9ce3ea3368
Update license headers
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-30 14:07:05 +01: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 +01: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 +01:00
Daniel Kesselberg
e0e76bb784
Limit getIncomplete query to one row
...
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-12-15 21:42:26 +01:00