Commit Graph

212 Commits

Author SHA1 Message Date
Jyrki Gadinger
892af24f77 chore: remove useless "else if"
avoids the same signals being emitted twice

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-08-05 08:54:10 +02:00
Camila Ayres
a2a149ed12 fix(quota): add constexpr property names and server entry valid enum to FolderQuota struct.
Signed-off-by: Camila Ayres <hello@camilasan.com>
2025-08-01 11:25:36 +02:00
Camila Ayres
20cef5fd03 fix(quota): wrong conversion from bytes available to int64_t.
Signed-off-by: Camila Ayres <hello@camilasan.com>
2025-08-01 11:25:36 +02:00
Camila Ayres
0f3cc76cc8 fix(syncfileitem): save folder bytes available and bytes used to database.
Signed-off-by: Camila Ayres <hello@camilasan.com>
2025-08-01 11:25:36 +02:00
Matthieu Gallien
1ba9477d87 fix(e2ee): do not loose encryption status for folders and files
main issue is with child folders that were misbehaving once the initial
upload was done

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-07-29 15:37:26 +02:00
Matthieu Gallien
a2d6b7616a fix(code/style): use const almost always (always when possible)
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-07-01 14:27:59 +02:00
Matthieu Gallien
4fcf31cb0b fix(permissions): decode share "no download" permission
ensure we use currently existing server API to get the "no download"
permission

requires parsing some share-attributes new DAV property

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-07-01 14:27:59 +02:00
Matthieu Gallien
67bf4054dc fix(encryption): remove currently broken certificate hash handling
we may not currently properly store certificate hash for encrypted items
and later fails to find which public or private key pairs to use

for now, it is better to remove it and ensure we have a reliable way to
handle certificate migration

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-26 14:55:57 +02:00
Matthieu Gallien
15fafa0774 fix(rename): avoid failing hard when rename is rejected by server
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-09 09:42:11 +02:00
Camila Ayres
8abdba62b2 feat(quota): throw error when item size does not match folder quota.
Use public struct to store bytes used and available for each folder.

Signed-off-by: Camila Ayres <hello@camilasan.com>
2025-05-07 19:09:36 +02:00
Camila Ayres
16e85e73e3 feat(quota): add quota-available-bytes and quota-used-bytes to PROPFIND properties request.
DiscoveryPhase: add quota used and available properties to RemoteInfo and LocalInfo structs.

Signed-off-by: Camila Ayres <hello@camilasan.com>
2025-05-07 19:09:36 +02:00
Andy Scherzinger
130668c3b9
docs(reuse): Migrate to SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-04-29 09:00:19 +02:00
Matthieu Gallien
4ef159c734 fix(assert): remove runtime assert that could crash production builds
use debug only assert to remove the possibility that we self inflict
crashes on users

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-04-25 17:19:05 +02:00
Matthieu Gallien
2863b273cb default this capture is deprecated, so capture it explicitly
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-03-14 11:10:16 +01:00
Jyrki Gadinger
e794446908 make use of the new x-nc-skip-trashbin header
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-03-06 09:20:10 +01:00
Matthieu Gallien
2a52ec33b0 add support to use PKCS#11 harware token to store certifice for e2ee
Close #5685

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-02-07 09:12:29 +01:00
Matthieu Gallien
5b2af166d3 ensure no any user writable permissions in Nextcloud sync folder
past versions may have wrongly set the write permissions for other users
(UNIX style permissions)

remove this under the hypothesis that newly created files or folders
gets more restrictive permissions and that past files or folders should
be updated to get the same permissions

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-11-21 12:06:57 +01:00
Claudio Cambra
d56522f524 Fetch and record live photo properties during remote discovery single directory job
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-11-20 14:39:51 +01:00
Matthieu Gallien
968289cbf0 content access denied error during discovery: verify server access
will trigger a check of the server connectivity in case of content
access denied reporting when listing folders during discovery

should allow discovering early that terms of service need to be signed

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-10-22 15:03:45 +02:00
Camila Ayres
ddaaf2c344 Fail with error before calling folder metada setup when received empty signature.
Signed-off-by: Camila Ayres <hello@camilasan.com>
2024-10-16 11:51:01 +02:00
Matthieu Gallien
88992761bb
remove too verbose logs during discovery
will make the logs less verbose and improve performance

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-10-07 09:46:10 +02:00
Matthieu Gallien
451faaf0e1 receive and decode tokens for locks
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-09-25 15:06:29 +02:00
Matthieu Gallien
863256fd55
ignore encrypted items during discovery when encryption is disabled
when we know a folder should be encrypted but encryption client side app
is disabled, ignore any items in the encrypted folders

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-06-26 14:47:17 +02:00
Matthieu Gallien
284823d147
maintain e2ee state even if the server does not support e2ee
might be that the server previously supported e2ee and e2ee folders
exist

so we have to fetch the info to properly handle it on client

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-06-26 14:47:17 +02:00
Claudio Cambra
7e62368eb2 Fix QDateTime string formatting
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2024-04-26 09:05:12 +02:00
Matthieu Gallien
55034f7e43
properly compute if a folder is top level or child extern mounted
asks new permission to server to be able to know if a folder is a top
level mounted folder

should allow detecting the top level folders from external storages or
group folders

should also make the client reliably detect that it is handling a child
folder inside a group folder and be allowed to rename such folders

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-03-27 14:29:01 +01:00
alex-z
c5dd2e89a1 E2EE. Fix root metadata fetching path for non-root remote sync folder. Refactoring. Stabilizing paths.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2024-03-20 00:54:27 +01:00
Matthieu Gallien
b7c1a95d1c
fix missing tracking for some item rename operations
will fix mishandling of rename of a single file to multiple places
during discovery

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2024-03-05 16:43:05 +01:00
alex-z
e9a0dbd16c Allow event processing between each XML parser run, to improve GUI performance.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2024-01-29 18:32:01 +01:00
alex-z
af612525c4 End-to-End Encryption V2. Implemented sharing between users. Automatic migration from 1.0 to 2.0(only for flat folders). Improved secure filedrop.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2024-01-29 16:13:25 +01:00
Dimitri Papadopoulos
09521edbac Fix residual typos found by codespell
Signed-off-by: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
2023-09-16 20:36:56 +02:00
alex-z
0f7d29bce6 Ignore upload error items and schedule a new sync in case there are removed items that need to be downsynced.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-09-04 10:02:05 +02:00
Claudio Cambra
a5d7c75e6f
Add additional logging for folder size check
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:44:23 +08:00
Claudio Cambra
21656cce17
Replace all manual isntancesof adding trailing slash with use of utility method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:42 +08:00
Claudio Cambra
ac8e9c4274
Fix trailing slash procedure in DiscoveryPhase::checkSelectiveSyncNewFolder
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:42 +08:00
Claudio Cambra
9fa5ae3604
Use simpler sort methods for white and black lists in discoveryphase
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:42 +08:00
Claudio Cambra
017dca2328
Move findPathInList from discoveryphase to common syncjournaldb
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:39 +08:00
Claudio Cambra
61057334f6
Do not notify if setting is not enabled for folders going over limit
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:38 +08:00
Claudio Cambra
aa20c102b6
Properly check folder size on server
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:37 +08:00
Claudio Cambra
5acacdd4d8
Make checkFolderSizeLimit more task agnostic
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:37 +08:00
Claudio Cambra
6f2e63d52f
Create and connect specific signal for existing folder now being discovered to be big
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:37 +08:00
Claudio Cambra
7145d73f15
Add DiscoveryPhase::checkSelectiveSyncExistingFolder
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:36 +08:00
Claudio Cambra
e5f399ff51
Move active folder size limit check to independent convenience method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:36 +08:00
Claudio Cambra
17de46cec2
Clean up declaration of DiscoveryPhase::checkSelectiveSyncNewFolder by using const auto, renaming single letter variables, more
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-04 17:40:35 +08:00
Dries Mys
984d06e82a Convert VFS file to placeholder again if needed
Note that Windows may convert a placeholder file to a regular file when
it is replaced by another file, even if the old and new file (inode,
modified time, file size) are identical.

WIN32_FIND_DATA::dwReserved0 is only initialised in case of
FILE_ATTRIBUTE_REPARSE_POINT is set. This field is not a bit set. Check
corrected to only include all cloud reparse points and not other special
reparse points.

Signed-off-by: Dries Mys <dries.mys@my-dreams.be>
2023-07-26 11:05:50 +02:00
Matthieu Gallien
5372276779 add more metadata to sync errors to allow filtering
in order to be able to filter some errors when showing them into the
main dialog activity list, add some more info about the error to know
the origin (like a network issue or a sync issue)

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-06-07 17:25:44 +02:00
alex-z
3be820d9a3 Group folder visibility improvements. Show dropdown in tray window.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-05-09 12:25:05 +02:00
Matthieu Gallien
8659df2266
prevent downgrading e2ee metadata format after initial migration
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-03-31 17:18:29 +02:00
Matthieu Gallien
7c655cf679
use a getter to query encryption status
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-03-31 17:18:28 +02:00
alex-z
b6ba1fe0d6 Implement Secure filedrop link share. Move data from 'filedrop' to 'files' when syncing E2EE folders.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-03-02 19:29:11 +01:00