Commit Graph

756 Commits

Author SHA1 Message Date
Edouard Vanbelle 8e1a738056 feat(audit): show trace with HTTP's client_ip and user if logged in + add support of trusted proxy via CIDR 2026-05-05 09:44:25 +02:00
Dionisio Pozo e4ea2211ea Merge pull request #329 from EdouardVanbelle/feat/drop-to-sytem 2026-05-04 22:45:19 +02:00
Edouard Vanbelle 0cb641ab20 feat(openapi): add new entry used by drag & drop 2026-05-04 22:41:29 +02:00
Edouard Vanbelle 05037e7491 feat(ui): permit drag&drop to the operating system
a drop outside of the browser will:
  - upload the file if only 1 file selected
  - upload a .zip of the directory or multiple selection (browsers do not permit multiple upload yet)

note: I had to create a new handler because a post request to /api/batch/download is possible via JS but it will create a memory blob in the browser, during the drag action.

This may exhaust the browser's memory if heavy files
This will initiate zip creation from the server even if drop is canceled
The best approach is to add a handler supporting GET calls, this call will be triggered by the browser on drop action outside of it's window
2026-05-04 22:32:31 +02:00
Edouard Vanbelle fbd59a1f38 feat(ui): permit drag&drop to the operating system
a drop outside of the browser will:
  - upload the file if only 1 file selected
  - upload a .zip of the directory or multiple selection (browsers do not permit multiple upload yet)

note: I had to create a new handler because a post request to /api/batch/download is possible via JS but it will create a memory blob in the browser, during the drag action.

This may exhaust the browser's memory if heavy files
This will initiate zip creation from the server even if drop is canceled
The best approach is to add a handler supporting GET calls, this call will be triggered by the browser on drop action outside of it's window
2026-05-04 22:31:20 +02:00
Dionisio Pozo 1cb541dca2 Merge pull request #331 from EdouardVanbelle/feat/full-openapi-coverage 2026-05-04 22:08:33 +02:00
Dionisio Pozo 162c29f283 Merge pull request #338 from EdouardVanbelle/feat/thumbnail-generation-from-client 2026-05-04 22:07:59 +02:00
Edouard Vanbelle e802cdb268 improvement(ui): thumbnail generaiton uses now mime_type (ex: for .ogg containers can be music or video)
- improve also error handling (shows reason of thumbnail generation failure)
2026-05-04 21:16:50 +02:00
Edouard Vanbelle 1d2085457e feath(ui): photo lib now using thumbnail library 2026-05-04 21:08:19 +02:00
Edouard Vanbelle 23336cc2bd fix(ui): correct input-modal, hidden by default 2026-05-04 21:04:15 +02:00
Edouard Vanbelle f6cd18e5e9 feat: generate thumbnail from client is not found on server
- supported thumbnail filetype: image, pdf, video
- add play character if video's thumbnail is loaded
2026-05-04 21:04:15 +02:00
Dionisio Pozo c6b1b14444 Merge pull request #340 from abnvle/feat/polish-translation
add polish (pl) translation
2026-05-04 20:29:13 +02:00
Dionisio Pozo add9faa8c3 Merge pull request #339 from EdouardVanbelle/style/pedantic 2026-05-04 19:30:11 +02:00
Dionisio Pozo ce1ca88fcc Merge pull request #342 from EdouardVanbelle/audit 2026-05-04 19:29:15 +02:00
Dionisio Pozo ff18a2f085 Merge pull request #341 from EdouardVanbelle/style/clippy-warning-fix
style(server): correct clippy warnings
2026-05-04 18:52:01 +02:00
Edouard Vanbelle 0f8eb6d3ab chore: audit: ignore rustls-webpki 0.101.7 issue
# rustls-webpki 0.101.7 — three advisories, all transitive via AWS SDK → rustls 0.21.12.
   # aws-sdk-s3 1.x (latest) has not yet migrated to rustls 0.23.x; no upgrade path available.
   # Severity: low — exploitation requires either a rogue CA or a MitM on AWS S3 infrastructure.
   #   RUSTSEC-2026-0104: DoS via panic in CRL parsing (only if CRLs are processed).
   #   RUSTSEC-2026-0098: URI name constraints ignored (requires CA misissuance).
   #   RUSTSEC-2026-0099: Wildcard name constraint bypass (requires CA misissuance).
   "RUSTSEC-2026-0104",
   "RUSTSEC-2026-0098",
   "RUSTSEC-2026-0099",

   # instant unmaintained — transitive via azure_core 0.21.0 (latest available).
   # No direct security impact; no upgrade path exists.
   "RUSTSEC-2024-0384",
2026-05-04 14:25:45 +02:00
Edouard Vanbelle 46e823ffda chore: move specific CI audit rules into global .cargo/audit.toml 2026-05-04 14:23:01 +02:00
Edouard Vanbelle b6eec61677 chore: update Cargo dependencies to reduce security audit issues 2026-05-04 14:01:00 +02:00
Edouard Vanbelle fde8d9d69f chore: add audit in justfile 2026-05-04 14:01:00 +02:00
Edouard Vanbelle 6e1c435098 style(server): correct clippy warnings 2026-05-04 12:58:30 +02:00
Edouard Vanbelle d0c6bd6a73 feat(openapi): upgrade code to gnerate openapi on all path 2026-05-04 12:02:33 +02:00
abnvle e0a3578ee2 add polish (pl) translation 2026-05-04 00:20:41 +02:00
Edouard Vanbelle 3050556dc0 style(ui): request that all types defined
- check in more restrictive mode = request types
- define main types in static/js/core/types.js
2026-05-03 23:04:27 +02:00
Dionisio Pozo 97ea87efc2 Merge pull request #337 from gidsi/fix/carddav-bugs 2026-05-01 09:43:45 +02:00
DeepRot c041dfece4 fix(carddav): resolve PROPFIND 404 and MKCOL 500 bugs 2026-05-01 09:10:23 +02:00
Dionisio Pozo af44d67ff8 Merge pull request #336 from gidsi/fix/caldav-username-prefix-routing 2026-04-30 23:39:20 +02:00
Timm d0086bb433 fix(dav): handle username prefix in all CalDAV and CardDAV route handlers
The PROPFIND handlers (added in #153) handle the /caldav/{username}/ and
/carddav/{username}/ prefixes returned by discovery, but do so via an
expensive database call to distinguish usernames from UUIDs. The remaining
handlers (PUT, GET, DELETE, REPORT, PROPPATCH) don't handle the prefix
at all, causing 500 errors when standard clients (DAVx5, Apple Calendar,
Thunderbird) follow the discovery URLs.

This commit:
1. Adds a strip_username_prefix() helper that uses a UUID parse check
   to distinguish collection IDs from usernames (no DB call needed).
2. Applies it to PUT, GET, DELETE, REPORT, and PROPPATCH handlers in
   both caldav_handler.rs and carddav_handler.rs.
3. Refactors PROPFIND in both files to use the same UUID heuristic for
   consistency, avoiding unnecessary database queries.

Includes 7 unit tests for the helper function.
2026-04-30 14:14:14 +02:00
Dionisio Pozo 05d3b2abaa Merge pull request #327 from EdouardVanbelle/style/claude-please-please-please-no-more-duplicate
style(claude): minimize code duplicate...
2026-04-27 22:02:02 +02:00
Edouard Vanbelle 444d242e63 style(claude): minimize code duplicate... 2026-04-27 21:41:38 +02:00
Dionisio Pozo 84b5f1da4e Merge pull request #325 from EdouardVanbelle/fix/rust-linter 2026-04-27 20:32:54 +02:00
Edouard Vanbelle 3a315ae75d chore(rust): use same params for clippy as the CI + correct clippy warnings 2026-04-27 20:25:33 +02:00
DioCrafts 30fd3cc488 Fix thumbnail generation for CDC blob storage 2026-04-26 11:55:05 +02:00
Dionisio Pozo 8c2598c555 Merge pull request #321 from onthebed/clawoss/docs/316-wopi-public-base-url 2026-04-26 09:19:26 +02:00
Dionisio Pozo f22987e7b2 Merge pull request #319 from EdouardVanbelle/refactor/fix-css-direct-colors 2026-04-26 09:17:49 +02:00
Dionisio Pozo c669b72a4e Merge pull request #317 from EdouardVanbelle/refactor/i18n 2026-04-26 09:17:06 +02:00
onthebed 0629177278 docs(wopi): document public and callback base URLs
Clarify how OXICLOUD_WOPI_PUBLIC_BASE_URL and OXICLOUD_WOPI_BASE_URL
should be set when the office editor runs on a different hostname.
2026-04-26 13:16:04 +08:00
Edouard Vanbelle f5dade1551 refactor(ui): css: use of variables colors only 2026-04-26 01:16:40 +02:00
Edouard Vanbelle 08cbf3a423 style(ui): apply biome recos 2026-04-26 00:22:49 +02:00
Edouard Vanbelle ae15d5adc5 chore(ui): bump cache name to ensure refresh 2026-04-26 00:13:50 +02:00
Edouard Vanbelle 3d8bd2d618 refactor(ui): i18n: apply translation (made by Claude) 2026-04-26 00:13:46 +02:00
Edouard Vanbelle 5c19564102 refactor(ui): i18n: add missing + correct keys 2026-04-26 00:13:39 +02:00
Edouard Vanbelle 75d3984b8f refactor(ui): i18n: remove unnecessary wrappers 2026-04-26 00:13:12 +02:00
Edouard Vanbelle 4e2029969e refactor(ui): remove unnecessary checks (i18n is always defined) 2026-04-26 00:12:44 +02:00
Dionisio Pozo 156f3bc7ba Merge pull request #309 from EdouardVanbelle/refactor/keep-badge-order 2026-04-25 21:20:58 +02:00
Edouard Vanbelle 7b56b518d8 notification: remove dead code (notification class always present) 2026-04-25 21:10:04 +02:00
Edouard Vanbelle e148a92f5d refactor(ui): use hidden class for upload + menu 2026-04-25 21:10:04 +02:00
Edouard Vanbelle 35fc9a0619 improve(ui): share-dialog: click outside of dialog closes the window 2026-04-25 21:10:04 +02:00
Edouard Vanbelle fc8e529e7d refactor(ui): modal: use hidden class 2026-04-25 21:10:04 +02:00
Edouard Vanbelle a38bcc01de refactor(ui): normalize about modal with hidden class 2026-04-25 21:09:55 +02:00
Edouard Vanbelle 832c9ab577 improve(ui): dialog: add escape key on shared dialog + perfer hidden class 2026-04-25 21:09:41 +02:00