Commit graph

17009 commits

Author SHA1 Message Date
Côme Chilliet
3a29196aa1 fix: Fix PHP Warning foreach() argument must be of type array|object, null given
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-12 16:38:35 +00:00
Louis
1172105742
Merge pull request #61182 from nextcloud/backport/60916/stable34
[stable34] fix(previews): ffprobe hangs
2026-06-11 11:38:38 +02:00
Andrey Dyakov
6cf35fb171 fix(previews): ffprobe hangs
Signed-off-by: Andrey Dyakov <adduxa@gmail.com>
2026-06-11 07:58:43 +00:00
Cristian Scheid
32c79b4f6a feat(file-search): add property to SearchQuery and check select fields to decide wheter to join extended cache
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-06-10 17:09:39 +02:00
Joas Schilling
29ee4ae70c
Merge pull request #61093 from nextcloud/backport/61075/stable34
[stable34] fix(settings): Fix appstore icon color in settings menu
2026-06-10 11:46:59 +02:00
Louis
8b0d69c12b
Merge pull request #61118 from nextcloud/backport/61067/stable34
[stable34] fix: use correct permissions mask for non-home storage public links
2026-06-10 09:57:01 +02:00
Robin Appelman
6a0f9e444a chore: psalm fix
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-09 15:26:19 +00:00
Côme Chilliet
39f4f0f468 fix(psalm): Use end instead of array_last because psalm does not find the polyfill
I’m not sure why psalm cannot see we have a polyfill for array_last.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-09 15:12:43 +00:00
Côme Chilliet
87c7fa0a97 fix: Correctly detect appid for dist css files
Follow-up of ab551c4c8a

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-09 15:12:43 +00:00
Joas Schilling
fa23d8ea77
fix(settings): Fix appstore icon color in settings menu
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-06-09 14:57:59 +02:00
Joas Schilling
3a9280b734
Merge pull request #61076 from nextcloud/backport/61073/stable34
[stable34] fix(comments): load comments styles when the comments app is loaded
2026-06-09 14:56:31 +02:00
Joas Schilling
d397e7da3d fix(comments): Use capped memory cache for comments
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-06-09 08:59:36 +00:00
Ferdinand Thiessen
3aff8088d4 fix(comments): load comments styles when the comments app is loaded
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-08 16:01:21 +00:00
John Molakvoæ
677044db61
Revert "[stable34] refactor(NavigationManager): move navigation definitions into apps" 2026-06-05 10:39:22 +02:00
Andy Scherzinger
18399e21d9
Merge pull request #60940 from nextcloud/backport/60787/stable34
[stable34] fix(Storage): use `proxyexclude` parameter in DAV client
2026-06-03 20:40:18 +02:00
Ferdinand Thiessen
f2eca7f6e9 fix: make sure the core app is loaded
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-03 20:09:48 +02:00
Ferdinand Thiessen
e5297a1d04 refactor(NavigationManager): move navigation definitions into apps
The manager itself does not need to know what hardcoded-things an app provides,
instead the apps itself should handle this.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-03 20:09:48 +02:00
Josh
28da1e19db chore(DAV): fixup proxyexclude default value check
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-06-03 12:15:30 -04:00
Josh
88eb16955a chore(DAV): fixup for lint
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-06-03 12:15:30 -04:00
Josh
50105bc1ee fix(Storage): use proxyexclude parameter in DAV client
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-06-03 12:15:30 -04:00
Andy Scherzinger
8a84c44882
Merge pull request #60921 from nextcloud/backport/60728/stable34
[stable34]  fix(MailPlugin): Stop applying the offset twice and the limit per wide/exact
2026-06-03 08:42:59 +02:00
Anna Larch
9af4a2bb5a fix(sharing): restore STATUS_ACCEPTED for OC-migrated group share subshares
When an ownCloud-migrated group share (which has no per-user USERGROUP
subshare) is renamed for the first time, DefaultShareProvider::move()
inserted a new USERGROUP row without setting `accepted`. The column
defaulted to 0 (STATUS_PENDING), causing MountProvider to skip the
share on the next login — the shared file disappeared for the recipient.

Fix: set accepted = STATUS_ACCEPTED explicitly on the INSERT in
DefaultShareProvider::move() for the TYPE_GROUP branch.

Secondary fix: SharedMount::moveMount() silently returned true when
updateFileTarget() threw (e.g. group no longer exists on an OC-migrated
instance). Set $result = false in the catch block so View::rename()
propagates the failure instead of silently corrupting VFS state.

An opt-in occ command (sharing:fix-owncloud-group-shares) with --dry-run
support is included to repair existing broken instances. It targets only
TYPE_USERGROUP subshares with accepted=STATUS_PENDING and permissions!=0
(shares that were accepted but broken by the missing column default),
leaving explicitly declined shares (permissions=0) untouched.

AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-06-02 09:14:34 +00:00
provokateurin
f603358186
fix(MailPlugin): Stop applying the offset twice and the limit per wide/exact
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-06-02 08:21:45 +02:00
provokateurin
2e9f3b3c63
perf(MailPlugin): Optimize checking group memberships
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-06-02 08:19:54 +02:00
provokateurin
95df86b5b0
refactor(MailPlugin): Continue execution after extracting email instead of calling itself
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-06-02 08:19:54 +02:00
provokateurin
b2ccbd389b
fix(MailPlugin): Use correct type for exact id match
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-06-02 08:19:54 +02:00
Andy Scherzinger
865f079415
Merge pull request #60820 from nextcloud/backport/59677/stable34
[stable34] fix(appconfig,userconfig): restore pre-migration fallback for ownCloud migration
2026-06-01 22:33:38 +02:00
Benjamin Gaussorgues
e612661d71 feat(jobs): add command to list executed background jobs
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-29 13:10:15 +00:00
Benjamin Gaussorgues
ebc128af73
fix(jobs): be less strict about data types
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-29 10:16:22 +02:00
Benjamin Gaussorgues
5efa292412
fix(db): ensure no autoincrement for Oracle
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-29 10:16:03 +02:00
Anna Larch
148c79734d fix(appconfig,userconfig): restore pre-migration fallback for ownCloud migration
AppConfig and UserConfig unconditionally queried NC-only columns (type,
lazy, flags, indexed) that don't exist in ownCloud's database schema,
breaking ownCloud → Nextcloud upgrades entirely before the schema
migration steps could run.

Restore the fallback pattern in both classes: on first loadConfig() call,
if a DBException with REASON_INVALID_FIELD_NAME is thrown, set
$migrationCompleted = false and retry selecting only the columns present
in ownCloud's schema. INSERT and UPDATE statements also omit NC-only
columns when $migrationCompleted is false.

The catch block also guards against infinite recursion: if $migrationCompleted
is already false when the exception fires, the exception is re-thrown
instead of triggering another recursive call.

Fixes: https://github.com/nextcloud/server/issues/57340

Signed-off-by: Anna Larch <anna@nextcloud.com>
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 18:43:14 +00:00
Andy Scherzinger
b67760a875
Merge pull request #60793 from nextcloud/backport/60733/stable34
[stable34] fix(DB): Enforce foreign key constraints in SQLite
2026-05-28 15:51:30 +02:00
Justin Zobel
6cbc7e1e1c fix: "than" vs "then" typos
Signed-off-by: Justin Zobel <justin.zobel@gmail.com>
2026-05-28 13:39:37 +00:00
Benjamin Gaussorgues
75853a2210 feat(jobs): log job execution in CronService
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-28 10:20:07 +00:00
Benjamin Gaussorgues
f936e54b8d feat(jobs): allow to keep track of job executions
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-28 10:20:07 +00:00
Benjamin Gaussorgues
9269ac210f feat(jobs): introduce background job classes registry
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-28 10:20:06 +00:00
provokateurin
5114b6848d fix(DB): Enforce foreign key constraints in SQLite
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-05-28 10:05:21 +00:00
skjnldsv
1e4a14f89f fix(config): add null coalescing fallback in getValueBool before strtolower
Followup to #59646: guard against null reaching strtolower() in both
AppConfig and UserConfig getValueBool(). Also aligns AppConfig with the
(string) cast added in UserConfig by the original PR.

Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2026-05-26 07:33:24 +00:00
Andy Scherzinger
01fe7cb4e5
Merge pull request #60593 from nextcloud/backport/60286/stable34
[stable34] fix(AppStore/Fetcher): catch GenericFileException when reading cache file in Fetcher
2026-05-22 09:03:00 +02:00
Benjamin Gaussorgues
17deb8c481
Merge pull request #60636 from nextcloud/backport/60612/stable34
[stable34] chore(snowflake): add more randomness in server id fallback
2026-05-21 11:54:51 +02:00
Philip Renich
575bca0ce6 fix: treat all WebKit iOS browseres the same
Signed-off-by: Philip Renich <hello@philiprenich.com>
2026-05-21 08:26:55 +00:00
Benjamin Gaussorgues
5440a3cd7a chore(snowflake): add more randomness in server id fallback
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-21 08:17:01 +00:00
Benjamin Gaussorgues
c4aab00f1e
Merge pull request #60609 from nextcloud/backport/45027/stable34
[stable34] fix(argon2): respect max value for hashingThreads
2026-05-21 09:26:28 +02:00
Louis
ddf2cefb6d
Merge pull request #60517 from nextcloud/backport/60505/stable34
[stable34] feat(users): Check assertion when enabling user
2026-05-20 17:23:09 +02:00
Stephan Orbaugh
09a0b4349d
Merge pull request #60564 from nextcloud/backport/60546/stable34
[stable34] fix: handle NAT64 addresses in isLocalAddress
2026-05-20 16:13:35 +02:00
Remi Collet
d29d2c0d2f fix: also respect max value for hashingThreads
Co-authored-by: Remi Collet <remi@php.net>
Signed-off-by: Remi Collet <remi@remirepo.net>
2026-05-20 11:51:29 +00:00
Anna Larch
adcd78ae16 fix(appstore): address review comments on GenericFileException handling
- Attempt delete before logging the warning, so the warning only fires
  when we know recovery will succeed
- Log an error (not silently return) when delete itself fails
- Use catch (\Exception) without variable (PHP 8)
- Replace willReturnArgument(1) with explicit willReturn(true) in test
- Add blank lines between logical blocks in test for readability

Signed-off-by: Anna Larch <anna@nextcloud.com>
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 11:21:22 +02:00
Anna Larch
53b72bdf9d fix(appstore): catch GenericFileException when reading cache file in Fetcher
When the appstore cache file exists but getContent() throws a
GenericFileException (I/O error or OS-level permission failure), explicitly
delete the file and recreate it before writing fresh data — mirroring the
NotFoundException recovery path. If deletion itself fails, return [] cleanly.

Previously, the unhandled exception caused the entire apps settings page to
crash. The new test covers both the recovery path and deletion failure.

Signed-off-by: Anna Larch <anna@nextcloud.com>
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 11:21:22 +02:00
Robin Appelman
3274518b6d fix: handle NAT64 addresses in isLocalAddress
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-05-19 15:37:20 +00:00
Ferdinand Thiessen
d07ede9a91 fix(OC_Helper): properly calculate quota of shared storages
- resolves https://github.com/nextcloud/server/issues/55659

First we need to properly handle shared storages,
because there the quota is the quota of the user who owns the nodes,
not the user who shared the nodes.

Second if no user can be fetched then we cannot get the global storage
info, thus in this case (public share?) we need to safe-guard.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-19 13:04:47 +00:00