Maxence Lange
761a688ec9
fix psalm
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-14 10:11:24 +07:00
Maxence Lange
3af12b2a50
ignore metadata if table is empty
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-14 09:28:58 +07:00
Maxence Lange
380b81315a
moving metadataquery
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-13 22:25:37 +07:00
Benjamin Gaussorgues
a75a93af8e
feat(files): Allow advanced search for files
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-10 09:21:16 +07:00
Louis Chemineau
d3a313f192
Support getting and setting metadata in DAV requests
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-08 16:23:53 +07:00
Maxence Lange
f497d8b6e5
IFilesMetadata
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-07 12:43:08 +07:00
Maxence Lange
e62e9e3dbf
IFilesMetadata
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-07 00:21:38 +07:00
Git'Fellow
b4a3773115
fix: reduce memory consumption of scans
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Fix lint
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-11-03 18:07:42 +07:00
Robin Appelman
460344336e
optimize cache jail creation
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-10-19 19:27:00 +07:00
Hamid Dehnavi
ea06cf2f39
Convert isset ternary to null coalescing operator
...
Signed-off-by: Hamid Dehnavi <hamid.dev.pro@gmail.com>
2023-09-28 17:44:19 +07:00
Côme Chilliet
5090848b25
Store size in int|float for 32bit support
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-19 13:43:01 +07:00
Julius Härtl
13b9dd2267
fix: Only read unencrypted_size when file is actually encrypted
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-06 07:25:28 +07:00
Robin Appelman
9ea03a9534
reuse dependencies from wrapped cache
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-18 11:14:52 +07:00
Ferdinand Thiessen
9c04c07622
fix: Prevent PHP warnings when optional CacheEntry attributes are unset
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-08-16 14:12:51 +07:00
Robin Appelman
658aed27ea
select the fileid first when looking for incomplete files
...
this seems to improve mariadbs index selection
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 18:08:01 +07:00
John Molakvoæ
7b7d1e3c09
fix: simplify `sourceData` check
...
Co-authored-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2023-08-05 12:05:36 +07:00
Josh Richards
deecb48e54
Catch more invalid cache source storage paths
...
OC\Files\Cache\Cache::get can return string|false|null, not just string|false.
- nextcloud/server#26270 added handling of false, but null is needed too.
- Well, or we change the default $resullt to false, but I'm not sure if that has other ramifications and the real need here is to simply catch situations where the cache source storage path is not valid for whatever reason
Related: nextcloud/server#19009
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2023-08-03 09:53:46 +07:00
Robin Appelman
c912a3f0f6
Merge pull request #38860 from nextcloud/scanner-change-summary
...
add summary of detected changes to files:scan output
2023-07-20 18:37:07 +07:00
Christoph Wurst
14719110b9
chore: Replace \OC::$server->query with \OCP\Server::get in /lib
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-07-06 15:21:22 +07:00
Julius Härtl
eddb64f8c3
Merge pull request #37969 from nextcloud/poc/noid/systemtags-perf-tag-endpoint
2023-06-28 07:53:35 +07:00
Robin Appelman
39a0554c09
Merge pull request #38858 from nextcloud/scanner-performance3
...
file scanner performance improvements
2023-06-26 17:01:18 +07:00
Arthur Schiwon
49db546f78
fix: include invisible tags for admins
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:01 +07:00
Arthur Schiwon
783e32a64d
fix: favorites view and universal search against tags
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Arthur Schiwon
b0d1cf5730
fix: change if with conditionless else to switch; and a parameter value
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Arthur Schiwon
58f7fd2370
use efficient tag retrieval on DAV report request
...
- uses DAV search approach against valid files joined by systemtag selector
- reduced table join for tag/systemtag search
- supports pagination
- no changes to the output formats or similar
Example request body:
<?xml version="1.0"?>
<oc:filter-files xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns " xmlns:nc="http://nextcloud.org/ns " xmlns:ocs="http://open-collaboration-services.org/ns ">
<d:prop>
<d:getcontentlength/>
<d:getcontenttype/>
<d:getetag/>
<d:getlastmodified/>
<d:resourcetype/>
<nc:face-detections/>
<nc:file-metadata-size/>
<nc:has-preview/>
<nc:realpath/>
<oc:favorite/>
<oc:fileid/>
<oc:permissions/>
<nc:nbItems/>
</d:prop>
<oc:filter-rules>
<oc:systemtag>32</oc:systemtag>
</oc:filter-rules>
<d:limit>
<d:nresults>50</d:nresults>
<nc:firstresult>0</nc:firstresult>
</d:limit>
</oc:filter-files>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Arthur Schiwon
71e41ffeeb
refactor: declare getMount() and getMountsIn() at IRootFolder
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:20 +07:00
Arthur Schiwon
f6ac874dbf
chore: ugly type juggling
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:20 +07:00
Arthur Schiwon
eb50b6c6aa
fix: expect interface, not a specific implementation
...
- fixes a regression when deleting folders while music app was enabled,
for a LazyRoot was passed to this method.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:13 +07:00
Robin Appelman
292c0e53f8
add summary of detected changes to files:scan output
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-16 17:56:34 +07:00
Robin Appelman
561536fc58
file scanner performance improvements
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-16 16:31:48 +07:00
Christoph Wurst
872c181c74
chore: Drop dead private methods in /lib
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-06 11:01:58 +07:00
Simon L
702196dd86
Merge pull request #38478 from nextcloud/backport/38440/master
...
[master] fix: Catch Deadlock properly as execute throws Doctrine exceptions not our wrapped ones
2023-06-05 23:22:40 +07:00
Robin Appelman
9f1d497a0b
Merge pull request #38261 from fsamapoor/replace_strpos_calls_in_lib_private
...
Refactors "strpos" calls in lib/private to improve code readability.
2023-06-01 23:10:00 +07:00
Julius Härtl
9453c2d40d
fix: execute throws docrine exceptions not our wrapped ones
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-26 06:56:55 +07:00
Côme Chilliet
8362eea14e
Merge pull request #38196 from nextcloud/fix/fix-32bits-freespace-and-sizes
...
Get rid of more int casts in file size manipulations
2023-05-15 17:05:46 +07:00
Faraz Samapoor
e7cc7653b8
Refactors "strpos" calls in lib/private to improve code readability.
...
Signed-off-by: Faraz Samapoor <fsamapoor@gmail.com>
2023-05-15 15:17:19 +07:00
Côme Chilliet
ae525e1935
Fix return types in phpdoc
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-15 12:24:42 +07:00
Julius Härtl
e18f97fc95
Merge pull request #37709 from nextcloud/bugfix/deadlock
2023-05-13 13:13:04 +07:00
Côme Chilliet
a90581b405
Get rid of more int casts in file size manipulations
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-11 12:46:16 +07:00
Arthur Schiwon
b6c034ac57
Merge pull request #37961 from nextcloud/poc/noid/systemtags-perf
...
SystemTags endpoint to return tags used by a user with meta data
2023-05-11 10:16:03 +07:00
Robin Appelman
2ea41dab93
repair -1 folder sizes for object store background scan
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-10 19:33:26 +07:00
Arthur Schiwon
df662f50bd
refactor: remove where specification from SELECT getter
...
- search constraints are now fully in control of
SystemTagsInFilesDetector::detectAssignedSystemTagsIn(), avoids
duplication of a WHERE statement
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-10 18:48:06 +07:00
Arthur Schiwon
dbfd2f936a
refactor: remove SystemTag logic from Folder into QuerySearchHelper
...
- adds OC\SystemTag\SystemTagsInFilesDetector where the search logic is
moved to
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:52 +07:00
Arthur Schiwon
2489a2d63a
feat: specify media type via url path: systemtags-current/$mediaType
...
- only the media part of the mime type can be search, but not the full
mime type. It can be added, should it become necessary.
- thus fixes previously hardcoded selector for image/ types
- also fixes a return type hint
- adds a return type hint
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:51 +07:00
Arthur Schiwon
6bff6a5667
PoC: SystemTags endpoint to return tags used by a user with meta data
...
Target case is photos app: when visiting the tags category, all systemtags
of the whole cloud are retrieved. In subequent steps the next tag is
requested until the browser view is filled with tag tiles (i.e. previews
are requested just as well).
With this approach, we incorpoate the dav search and look for user related
tags that are used by them, and already returns the statistics (number of
files tagged with the respective tag) as well as a file id for the purpose
to load the preview. This defaults to the file with the highest id.
Call:
curl -s -u 'user:password' \
'https://my.nc.srv/remote.php/dav/systemtags-current ' \
-X PROPFIND -H 'Accept: text/plain' \
-H 'Accept-Language: en-US,en;q=0.5' -H 'Depth: 1' \
-H 'Content-Type: text/plain;charset=UTF-8' \
--data @/home/doe/request-systemtag-props.xml
With request-systemtag-props.xml:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
<d:prop xmlns:oc="http://owncloud.org/ns " xmlns:nc="http://nextcloud.org/ns ">
<oc:id/>
<oc:display-name/>
<oc:user-visible/>
<oc:user-assignable/>
<oc:can-assign/>
<nc:files-assigned/>
<nc:reference-fileid/>
</d:prop>
</d:propfind>
Example output:
…
<d:response>
<d:href>/master/remote.php/dav/systemtags/84</d:href>
<d:propstat>
<d:prop>
<oc:id>84</oc:id>
<oc:display-name>Computer</oc:display-name>
<oc:user-visible>true</oc:user-visible>
<oc:user-assignable>true</oc:user-assignable>
<oc:can-assign>true</oc:can-assign>
<nc:files-assigned>42</nc:files-assigned>
<nc:reference-fileid>924022</nc:reference-fileid>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>/remote.php/dav/systemtags/97</d:href>
<d:propstat>
<d:prop>
<oc:id>97</oc:id>
<oc:display-name>Bear</oc:display-name>
<oc:user-visible>true</oc:user-visible>
<oc:user-assignable>true</oc:user-assignable>
<oc:can-assign>true</oc:can-assign>
<nc:files-assigned>1</nc:files-assigned>
<nc:reference-fileid>923422</nc:reference-fileid>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
…
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:48 +07:00
Julius Härtl
3bdd770129
fix: Check for wrapped retriable exceptions
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-05-02 19:42:11 +07:00
Robin Appelman
4953296b9e
Merge pull request #36857 from nextcloud/scan-repair-unencrypted-size
...
fix unencrypted_size for folders when scanning the filesystem with encryption enabled
2023-04-24 15:24:50 +07:00
Robin Appelman
0ac7230b7f
Merge pull request #37820 from nextcloud/parent-storage-mtime-ignore-error
...
ignore errors while trying to update parent storage_mtime
2023-04-21 19:11:27 +07:00
Robin Appelman
4b52dafbf9
ignore errors while trying to update parent storage_mtime
...
in the worst case this should only cause an extra rescan later
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-20 17:16:03 +07:00
Côme Chilliet
b294edad80
Merge branch 'master' into enh/type-iconfig-getter-calls
...
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-04-20 16:52:38 +07:00
Robin Appelman
b1f352c614
improve handling of files we can't access in the scanner
...
instead of erroring, remove the items from the cache.
this situation can be triggered if a user has access to a file but looses it afterwards
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-05 14:44:55 +07:00
Côme Chilliet
426c0341ff
Use typed version of IConfig::getSystemValue as much as possible
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-05 12:50:08 +07:00
Robin Appelman
5267a74027
fix type hints
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 17:05:45 +07:00
Robin Appelman
8c9197d65e
fix unencrypted folder size when no children with unencrypted size set are left
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 16:48:11 +07:00
Robin Appelman
649bed5154
fix unencrypted_size for files when scanning
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-04 16:48:11 +07:00
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
jld3103
dcf6ebebab
Fix inherited parameter names
...
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-04-03 08:29:33 +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
Côme Chilliet
f5c361cf44
composer run cs:fix
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-20 11:45:08 +07:00
Git'Fellow
e855298b3c
Switch logical operators
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-01-11 16:27:33 +07:00
Vincent Petry
3b7cc31f64
Merge pull request #34924 from nextcloud/cache-jail-path-prefix
...
escape path prefix when doing cache jail search
2022-12-16 17:27:15 +07:00
Andy Xheli
e69c7c4d26
Fix Executing a query: SQLSTATE[42000]
...
Signed-off-by: Andy Xheli <axheli@axtsolutions.com>
Fix https://github.com/nextcloud/server/issues/32007#issuecomment-1329405245
Signed-off-by: Andy Xheli <axheli@axtsolutions.com>
2022-11-29 11:24:56 +07:00
Robin Appelman
f76b4473ee
escape path prefix when doing cache jail search
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-11-02 12:44:51 +07:00
Vincent Petry
4aa8e80511
Merge pull request #34579 from nextcloud/unencrypted-size-null
...
fix null error in getUnencryptedSize
2022-10-21 16:53:43 +07:00
Carl Schwan
54031e370a
Fix various other small psalm issues
...
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-17 12:40:35 +07:00
Robin Appelman
63316fc572
fix null error in getUnencryptedSize
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-10-13 15:34:48 +07:00
raul
95bc770a37
Fix unencrypted size calculation for files created before the Encryption storage is enabled
...
Signed-off-by: raul <raul@nextcloud.com>
2022-10-03 13:44:14 +07:00
raul
45a1ebcc4c
Fix: Prevent deadlocks during mtime/size/etag propagation
...
Signed-off-by: raul <raul@nextcloud.com>
2022-10-03 13:44:14 +07:00
Robin Appelman
b6f8b8da60
directly build the search filter for shared storage instead of setting up the source cache
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-08-17 11:58:57 +07:00
Vincent Petry
312b719acf
Merge pull request #32943 from nextcloud/unencrypted-size-revert-interface-changes
...
Revert interface changes from "store unencrypted size in the unencrypted_size column"
2022-08-17 11:36:16 +07:00
Vincent Petry
11d5a1d3df
Merge pull request #33550 from nextcloud/jail-search-post
...
optimize search post-processing for jail wrapper
2022-08-17 10:55:41 +07:00
Vincent Petry
082432e01c
Merge pull request #33551 from nextcloud/scanner-dont-update-same-size
...
don't update the folder size if we know it hasn't changed
2022-08-17 09:21:30 +07:00
Robin Appelman
457822c144
don't update the folder size if we know it hasn't changed
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-08-16 13:56:51 +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
9d6c2ce301
optimize search post-processing for jail wrapper
...
don't both asking the wrapped cache if we know it's not in our jail anyway
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-08-16 13:36:52 +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
David
fe3f4afd77
fixed the cache searchBuilder negative map
...
Signed-off-by: David <37280718+yeyulantu@users.noreply.github.com>
2022-08-16 17:59:02 +07:00
Côme Chilliet
7ae6791737
Document all getIncomplete implementations as returning string|false
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-08-02 14:23: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
Carl Schwan
f326b54e53
Search without join on filecache_extended
...
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-06-23 16:23:52 +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
Marcel Klehr
f755ee0868
Files: Extend search to also cover tags
...
fixes #326
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-05-17 21:05:09 +07:00
Côme Chilliet
069477e608
Migrate more classes of lib/private to LoggerInterface
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-04-26 16:52:52 +07:00
Robin Appelman
a4e120c203
tell mysql to ignore the sort index for search queries
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-04-22 13:42:33 +07:00
Robin Appelman
9834350ac3
Merge pull request #31713 from nextcloud/fed-performance
...
Federated share performance improvements
2022-04-07 18:53:36 +07:00
Joas Schilling
a44671d396
Merge pull request #31816 from nextcloud/bugfix/noid/deduplicate-storage-id-before-reusing
...
Deduplicate storage ids in list before reusing
2022-04-04 19:00:22 +07:00
Robin Appelman
cc5e26bb14
Merge pull request #31776 from nextcloud/storage-id-cache-bi-directional
...
cache storage id mapping both ways
2022-04-04 14:50:23 +07:00
Robin Appelman
5e2dd29aaf
only request free space once for external shares
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-04-04 16:48:27 +07:00
Robin Appelman
89d3cd1447
don't overwrite the etag from storage backends that already provide "good" etags
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-04-04 16:48:18 +07:00
Joas Schilling
d3b9d49c22
Deduplicate storage ids in list before reusing
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-04 07:07:48 +07:00
Robin Appelman
ac657b0f06
cache storage id mapping both ways
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-03-31 14:35:42 +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
Côme Chilliet
6be7aa112f
Migrate from ILogger to LoggerInterface in lib/private
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-03-24 16:21:25 +07:00
Robin Appelman
84f464550a
some file scanner performance improvements
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-03-17 22:21:16 +07:00
Robin Appelman
b0ce876f41
return dummy availability if storage is not found in cache
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-02-25 15:25:13 +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
Robin Appelman
f5fe887b4b
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-02 17:34:58 +07:00
Côme Chilliet
113756db30
Fix ArrayAccess and JsonSerializable return types
...
First round of modifications for PHP 8.1
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-11-23 09:28:56 +07:00
Vincent Petry
c92a0e4152
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-17 09:43:25 +07:00
Vincent Petry
67ebe75d0e
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-17 09:24:13 +07:00
Vincent Petry
39fe43b914
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-17 09:24:13 +07:00
Robin Appelman
118c647f61
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-01 11:48:01 +07:00
John Molakvoæ
63d3931e80
Merge pull request #29281 from vijfhoek/master
2021-11-01 11:29:37 +07:00
Carl Schwan
df4e6bab69
Merge pull request #29115 from nextcloud/work/carl/correct-permissions-when-copying
...
Fix permissions when copying from ObjectStorage
2021-10-28 14:38:20 +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
Robin Appelman
55346b5d6c
more reliable return value for Watcher::checkUpdate
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-10-15 16:03:18 +07:00
Robin Appelman
7351059326
generate a better optimized query for path prefix search filters
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-26 19:07:52 +07:00
Vincent Petry
e32d293346
Merge pull request #28476 from nextcloud/search-jail-insensitive
...
use case insensitive like when limiting search to jail
2021-08-24 08:59:35 +07:00
Robin Appelman
c688703117
use getGetUnjailedRoot to determine if jailed search needs the path filter
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-23 16:27:53 +07:00
Robin Appelman
c48f9ffcdd
use case insensitive like when limiting search to jail
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-17 13:51:45 +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
97aadbe46c
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-26 17:44:52 +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
66e10718c6
split of query building bits from searchhelper
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:40 +07: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 +07:00
Robin Appelman
27e50b24aa
some cleanup and documentation
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:32 +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
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 +07: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 +07: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 +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
Vincent Petry
e559afb8d4
Merge pull request #25136 from nextcloud/cachejail-search-filter
...
do cachejail search filtering in sql
2021-03-15 17:45:30 +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
c2fc3195dd
also implement for FailedCache and NullCache
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-03-12 17:22:43 +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
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 +07: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 +07:00
Roeland Jago Douma
c3f1eb4f7f
Remove Redundantcasts
...
For #25839
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-04 14:44:04 +07: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 +07: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 +07:00
Robin Appelman
e511a539b7
adjust tests
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:55:38 +07:00
Robin Appelman
5ae0be08b4
fix search in nested jails
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:30:54 +07:00
Robin Appelman
27f9df2e87
fix cachjail searching for root
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:30:50 +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
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 +07:00