Commit graph

16398 commits

Author SHA1 Message Date
Julius Knorr
7d5ffa50ae feat: Allow to block full matches on the display name
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-12-18 14:04:46 +00:00
Côme Chilliet
9b1227749f
Merge pull request #57133 from nextcloud/fix-template-headers-injection
fix(lib): include headers from OC\Template\Template as well in produced HTML
2025-12-18 11:59:09 +01:00
Carl Schwan
06b6a5bc05
fix(preview): Correctly insert preview version
Use createNamedParameter otherwise values are not correctly escapted.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-17 18:23:53 +01:00
Ferdinand Thiessen
cc23025c2a
Merge pull request #57127 from nextcloud/addCheckBeforeBitwise
fix(IpNormalizer): Added `inet_pton()` check before bitwise operations
2025-12-17 16:28:37 +01:00
Benjamin Gaussorgues
89fcefbfa0
Merge pull request #55369 from nextcloud/carl/cleanup-external-manager 2025-12-17 14:14:48 +01:00
Carl Schwan
a011cb7780
refactor: Rename some variables in external share's manager
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-17 10:14:40 +01:00
Thomas Citharel
8482302e42
fix(lib): include headers from OC\Template\Template as well in produced HTML
Otherwise we only take those added through deprecated method C_Util::addHeader, not those of
OC\Template\Template::addHeader, which does nothing

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-12-16 23:01:38 +01:00
Git'Fellow
b9d55ba30c fix(IpNormalizer): Added inet_pton() check before bitwise operations
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-12-16 15:06:59 +01:00
Kate
1829269f9d
Merge pull request #56933 from nextcloud/fix/duplicate-mounts
Some checks failed
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Has been cancelled
Psalm static code analysis / static-code-analysis-security (push) Has been cancelled
Psalm static code analysis / static-code-analysis-ocp (push) Has been cancelled
Psalm static code analysis / static-code-analysis-ncu (push) Has been cancelled
2025-12-16 10:44:32 +01:00
Carl Schwan
3183ea79d2
refactor(external-share): Port more code to string as type for the id
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-16 10:40:09 +01:00
Carl Schwan
3bdb344224
perf(external-sharing): Port to Entity and SnowflakeId
This removes all the read after write and we don't need to queries all
the time the same share in the same request anymore.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-16 10:40:07 +01:00
Carl Schwan
6945a030f5
refactor(OC_Helper): remove buildNotExistingFileNameForView
Move the functionality in the last place it is used OC\Files\Node\Folder

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-16 10:38:29 +01:00
Marcel Klehr
3579c5a6a0
Merge pull request #57094 from nextcloud/fix/snowflake_file_seq
fix(snowflakes): FileSequence generator must always use the same dir
2025-12-16 09:21:12 +01:00
Côme Chilliet
197db6aa86
Merge pull request #55813 from nextcloud/fix/fix-infinite-loop-in-share-manager
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
fix(shares): Fix infinite loop when all shares are invalid
2025-12-15 20:17:26 +01:00
Stephan Orbaugh
582bb11eae
Merge pull request #55631 from nextcloud/carl/deprecate-config-user-correctly
refactor: Deprecated user config from IConfig correctly
2025-12-15 17:30:52 +01:00
Côme Chilliet
3e8502d239 fix(shares): Fix infinite loop when hide_disabled_user_shares is yes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-12-15 17:02:52 +01:00
Benjamin Gaussorgues
fa7e569a16
fix(snowflakes): FileSequence generator must always use the same dir
`TempManager::getTemporaryFolder` is returning a random directory.
FileSequence needs always the same directory, even if different
processes.

Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2025-12-15 15:58:15 +01:00
provokateurin
341fd348e6
fix(UserMountCache): Add back unique index for oc_mounts and use normal insert
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-12-15 12:26:23 +01:00
Kate
db530d1eae
Merge pull request #56921 from nextcloud/fix-caching-routes-by-users-with-an-active-session
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
2025-12-15 10:53:04 +01:00
Kate
9350a6798c
Merge pull request #57084 from nextcloud/carl/fix-32-bits-job 2025-12-15 09:23:06 +01:00
Carl Schwan
8034de84aa
fix(jobs): Fix 32 bits jobs
Specifying the type to int force a convertion from string to int which
fails on 32 bits for snowflake ids.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-15 08:41:26 +01:00
Daniel Calviño Sánchez
51ed61bb4a fix: Fix caching routes by users with an active session
When a user has an active session only the apps that are enabled for the
user are initially loaded. In order to cache the routes the routes for
all apps are loaded, but routes defined in routes.php are taken into
account only if the app was already loaded. Therefore, when the routes
were cached in a request by a user with an active session only the
routes for apps enabled for that user were cached, and those routes were
used by any other user, independently of which apps they had access to.
To solve that now all the enabled apps are explicitly loaded before
caching the routes.

Note that this did not affect routes defined using annotations on the
controller files; in that case the loaded routes do not depend on the
previously loaded apps, as it explicitly checks all the enabled apps.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-12-12 16:10:20 +01:00
Daniel Calviño Sánchez
0ba2f5e537 Revert "fix(CachingRouter): Disable cache for findMatchingRoute"
This reverts commit 90948f5096.

It temporary disabled cache for routes until an actual fix was added,
which is done in the following commits.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-12-12 16:06:47 +01:00
Julius Knorr
a45f4b0cdc
fix: Fix setting name inconsistency between backend and frontend
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-12-12 13:08:34 +01:00
Stephan Orbaugh
282341a8d6
Merge pull request #55738 from nextcloud/carl/cleanup-preview-command
fix(preview-cleanup): Also delete previews stored in the oc_previews table
2025-12-11 14:07:50 +01:00
Carl Schwan
2ae9626fec
refactor(user_ldap): Port most of the remaining deprecated IConfig usage
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-11 13:27:48 +01:00
Carl Schwan
6eabaaf104
refactor: Deprecated user config from IConfig correctly
Mark the methods in the interface deprecated instead of just the one in
the implementation.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-11 13:27:47 +01:00
Joas Schilling
69e6b6a483
fix(comments): Check comment object
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-12-11 07:55:55 +01:00
Elizabeth Danzberger
3a89c18888
fix(templates): deduplicate provider templates
Signed-off-by: Elizabeth Danzberger <elizabeth@elzody.dev>
2025-12-10 16:06:21 -05:00
Salvatore Martire
d14a032220 feat: implement support for authoritative mount providers
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-10 16:05:27 +01:00
Salvatore Martire
9b519b4679 refactor: simplify code
replace array_reduce + array_merge with array_merge(...)
replace conditional assignment with ??=

Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-10 16:05:27 +01:00
Salvatore Martire
f47a586cdd docs: update comments
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-10 16:05:27 +01:00
Carl Schwan
247b66c5ee
fix(preview-cleanup): Also delete previews stored in the oc_previews table
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-10 13:49:24 +01:00
Joas Schilling
da1dd481e9
Merge pull request #56900 from nextcloud/fix/noid/allow-macos-on-ci
fix: Allow installation on macOS CI
2025-12-10 11:39:21 +01:00
Marcel Klehr
f967134f58
Merge pull request #56928 from nextcloud/fix/taskprocessing-ocr
fix(TaskProcessing): Adjust OCR task type to allow for multiple files and pdfs
2025-12-09 13:52:57 +01:00
Andy Scherzinger
71c2e94123
Merge pull request #54436 from nextcloud/s3-signed-url
perf(s3): Provide direct pre-signed download link
2025-12-09 12:38:20 +01:00
Carl Schwan
b6313f68d3
perf(s3): Expose pre-signed urls for S3
This is faster than going back to nextcloud to download the files.

This is an opt-in setting that can be enabled by setting
use_presigned_url in the object store config.

Additionally add support for the proxy config which is needed in a
docker setup. See https://github.com/juliusknorr/nextcloud-docker-dev/pull/431

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-09 11:21:35 +01:00
Marcel Klehr
25044f82ae fix(TaskProcessing): Adjust OCR task type to allow for multiple files and pdfs
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-12-09 09:21:33 +01:00
provokateurin
90948f5096
fix(CachingRouter): Disable cache for findMatchingRoute
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-12-09 09:16:01 +01:00
Andy Scherzinger
2c6d3d6f76
Merge pull request #56628 from nextcloud/carl/snowflake/jobs
feat: Port jobs table to snowflakes ids
2025-12-08 12:23:44 +01:00
Marcel Müller
ae85eab73c fix: Allow installation on macOS CI
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-12-07 13:32:43 +01:00
Kate
842df498e0
Merge pull request #56816 from nextcloud/jtr/chore-legacy-drop-mac-checker 2025-12-05 17:42:38 +01:00
Joas Schilling
594d22021a
Merge pull request #56076 from nextcloud/carl/cleanup-comment
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
refactor(comment): Port away from deprecated event comment constant
2025-12-05 11:38:08 +01:00
Josh
d95ce6ac92
chore: drop no longer needed runningOnMac method
Removed deprecated method 'runningOnMac' that checks if PHP is running on macOS.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-12-04 16:46:55 -05:00
Carl Schwan
8bbd30693c refactor(share-manager): Make return type more precise
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-04 21:39:25 +01:00
Carl Schwan
3c9b937e28
refactor(comment): Port away from deprecated event comment constant
Create new events to replace deprecated CommentsEvent constant and use
them when creating CommentsEvents.

On the listener side, we can't yet use these events as deck still send
the old events.

Also fixes some issues reported by psalm level 3 on the comment app.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-04 17:38:53 +01:00
Christoph Wurst
8a581c230b refactor: improve reflection attribute typing
This allows tools to see the correct usage of
PasswordConfirmationRequired::getStrict

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2025-12-04 17:37:47 +01:00
Andy Scherzinger
1ef465f804
Merge pull request #56251 from nextcloud/carl/template-manager-cleanup
refactor(template-manager): Modernize template manager API
2025-12-04 17:26:53 +01:00
Carl Schwan
0e686fc6a9
feat: Port jobs table to snowflakes ids
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-04 17:16:12 +01:00
Côme Chilliet
aeed32cfba
Merge pull request #56843 from nextcloud/feat/add-cli-details-to-log
feat(log): Add script name and occ command to log details
2025-12-04 17:06:00 +01:00