Compare commits

...

189 Commits

Author SHA1 Message Date
Ferdinand Thiessen
72c4672bc9 ci: lock closed issues after some time
Commenting on closed issues usually is not spotted by contributors or maintainers.
Meaning regressions will be overlooked and not fixed, so instead force people to open a new issue.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-29 13:55:26 +01:00
Nextcloud bot
da2c865481 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-29 00:13:46 +00:00
Joas Schilling
5c0ba9ae08 Merge pull request #56732 from nextcloud/techdebt/noid/migrate-settings-pii-listener-to-events
fix(settings): Migrate PII listener to IEventListener
2025-11-28 22:24:19 +01:00
Andy Scherzinger
631f471bb7 Merge pull request #56537 from nextcloud/refactor/files-sharing
Refactor mount providers files_sharing app
2025-11-28 15:43:48 +01:00
Andy Scherzinger
1c8129aafc Merge pull request #56724 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/node-forge-1.3.2
build(deps-dev): bump node-forge from 1.3.1 to 1.3.2 in /build/frontend-legacy
2025-11-28 15:43:27 +01:00
Andy Scherzinger
8cd86fb6a0 Merge pull request #54685 from nextcloud/feat/comments/markdown-support
feat(comments): add Markdown support
2025-11-28 15:42:39 +01:00
Andy Scherzinger
3da9905c8f Merge pull request #56717 from nextcloud/enh/noid/taskpro-optional-watermarking
Add a boolean 'addWatermarking' attribute to taskprocessing tasks
2025-11-28 15:40:35 +01:00
Salvatore Martire
cfba3f8370 refactor(files_sharing): avoid magic numbers in external/MountProvider
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-11-28 13:02:45 +01:00
Salvatore Martire
881453dbde refactor(files_sharing): extract getMountsForUser logic
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-11-28 13:02:45 +01:00
Salvatore Martire
2d74a755a8 refactor(files_sharing): apply DRY in MountProvider
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-11-28 13:02:45 +01:00
Salvatore Martire
111d9397ae refactor(files_sharing): reduce complexity in MountProvider::buildSuperShares
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-11-28 13:02:45 +01:00
Salvatore Martire
2ae7c3ecae fix(files_sharing): remove unnecessary array_values in MountProvider
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-11-28 13:02:45 +01:00
Salvatore Martire
ff28ac7ea2 refactor(files_sharing): apply DRY for user and node ID in MountProvider
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-11-28 13:02:45 +01:00
Julien Veyssier
6d4da35ca8 chore(assets): compile assets
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-11-28 11:03:22 +01:00
Joas Schilling
3dd06f8b89 fix(settings): Migrate PII listener to IEventListener
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-28 10:57:47 +01:00
Julien Veyssier
89d59b8175 feat(comments): add Markdown support
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-11-28 10:52:30 +01:00
John Molakvoæ
bb1451fcb9 Merge pull request #56060 from nextcloud/fix/hide-open-locally-action 2025-11-28 09:51:47 +01:00
skjnldsv
478509a605 chore(assets): Recompile assets
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-11-28 09:17:37 +01:00
John Molakvoæ
7bbc42809e fix(files): use isDownloadable for isSyncable
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-11-28 09:17:37 +01:00
Fauzan
a7509ae2b8 fix(files_sharing): Hide 'Open locally' action
This patch ensures that the "Open locally" context menu item is not
displayed for files in a share where the "download and sync" permission
has not been granted.

This prevents user confusion, as the action would fail anyway. The fix
adds a permission check before rendering the menu item, and adds a
corresponding unit test to verify this behavior.

Resolves: #54970

Signed-off-by: Fauzan <fauzanfebriann@gmail.com>
2025-11-28 08:52:27 +01:00
Nextcloud bot
94a00b626e fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-28 00:13:27 +00:00
Joas Schilling
1c7ed89855 Merge pull request #56716 from nextcloud/fix/logger
fix(logger): add back lost params for logger methods
2025-11-27 15:54:43 +01:00
Joas Schilling
e613ba2acc Merge pull request #56729 from nextcloud/techdebt/noid/oracle-12
Drop Oracle 11 support
2025-11-27 15:50:52 +01:00
Joas Schilling
7a4167fe28 fix(oracle): Don't run tests against unsupported Oracle version anymore
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-27 14:39:51 +01:00
Joas Schilling
39e94ef927 fix(oracle): Add a warning for Oracle 11
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-27 14:35:54 +01:00
Anna Larch
ace9ba487e fix(logger): add back lost params for logger methods
Signed-off-by: Anna Larch <anna@nextcloud.com>
2025-11-27 13:44:07 +01:00
dependabot[bot]
06acb66404 build(deps-dev): bump node-forge in /build/frontend-legacy
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.1 to 1.3.2.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-27 13:34:08 +01:00
Stephan Orbaugh
fbff470d4c Merge pull request #56419 from nextcloud/fix/provide-non-interactive-mode-to-run-encryption
fix: support -n option to encrypt-all command to allow to run in non-interactive mode
2025-11-27 11:46:05 +01:00
Julien Veyssier
b4f7fe2cb6 feat(taskprocessing): add a boolean 'includeWatermark' to taskprocessing tasks and pass it to ISynchronousWatermarkingProvider::process
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-11-27 11:32:08 +01:00
Nextcloud bot
590d83993b fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-27 00:13:37 +00:00
Andy Scherzinger
4dffa1a46a Merge pull request #55790 from nextcloud/feat/webhook-tokens
Feat(webhook_listeners): add auth tokens to webhook call
2025-11-26 23:18:19 +01:00
Joas Schilling
38792c8c96 Merge pull request #56544 from nextcloud/chore/user_status--vue3
refactor(user_status): migrate to Vue 3
2025-11-26 15:40:21 +01:00
nextcloud-command
ea205ddd6c chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-26 13:23:21 +00:00
Grigorii K. Shartsev
8ca4a7a036 refactor(user_status): migrate to Vue 3
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2025-11-26 14:09:33 +01:00
Maksim Sukharev
b10d5d3ca0 chore(deps): add Vuex
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-11-26 14:09:21 +01:00
Grigorii K. Shartsev
bbd35b2754 build(user_status): move from frontend_legacy to frontend
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2025-11-26 14:05:43 +01:00
Grigorii K. Shartsev
fb44adc365 refactor(user_status): prepare for Vue 3 migration
Signed-off-by: Grigorii K. Shartsev <me@shgk.me>
2025-11-26 14:05:37 +01:00
Daniel
f4753cc0c4 Merge pull request #56711 from nextcloud/fix/noid/user-status-busy
fix(user_status): adjust online status string
2025-11-26 12:21:08 +01:00
Ferdinand Thiessen
b27992402a Merge pull request #56704 from nextcloud/chore/deps-missing
build(deps): add missing dependencies
2025-11-26 11:32:37 +01:00
Ferdinand Thiessen
a2a4137708 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-26 11:02:48 +01:00
Ferdinand Thiessen
9baac21534 build(deps): add missing dependencies
During the initial Vue 3 migration some dependencies were forgotten to
be explicitly mentioned as dependencies.
This aligns those dependencies with the package.json
It was only working because they were peer dependencies of other
dependencies we already added.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-26 10:51:26 +01:00
nextcloud-command
4dd34bd00d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-26 09:22:38 +00:00
Ferdinand Thiessen
b3532f01dd Merge pull request #56705 from nextcloud/chore/cleanup-deps
chore(deps): remove unused dependencies
2025-11-26 10:20:12 +01:00
Maksim Sukharev
48b5c84746 fix(user_status): adjust online status string
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-11-26 10:09:54 +01:00
Ferdinand Thiessen
6719f5a95e Merge pull request #56693 from nextcloud/chore/remove-useless-dependencies
chore: remove `@nextcloud/calendar-availability-vue` from legacy
2025-11-26 09:53:43 +01:00
Ferdinand Thiessen
7615e75e01 chore(deps): remove unused dependencies
Those dependencies were used only by our Cypress config,
but now as we use `@nextcloud/e2e-test-server` we do not have any direct
dependency on any of them.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-26 09:34:00 +01:00
John Molakvoæ
68a9903b0f Merge pull request #54550 from nextcloud/jtr-refactor-main-htaccess 2025-11-26 09:33:58 +01:00
Ferdinand Thiessen
8cb14b4c01 chore: remove @nextcloud/calendar-availability-vue from legacy
The dependency is only used by DAV app but that is already migrated to
Vue 3.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-26 09:30:33 +01:00
John Molakvoæ
30ad57b135 Merge branch 'master' into jtr-refactor-main-htaccess
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-11-26 09:15:31 +01:00
Andy Scherzinger
3e1ce965eb Merge pull request #56701 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/workbox-webpack-plugin-7.4.0
build(deps-dev): bump workbox-webpack-plugin from 7.3.0 to 7.4.0 in /build/frontend-legacy
2025-11-26 08:58:27 +01:00
nextcloud-command
9cc0af1e95 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-26 02:30:57 +00:00
dependabot[bot]
8bd328e48a build(deps-dev): bump workbox-webpack-plugin in /build/frontend-legacy
Bumps [workbox-webpack-plugin](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-webpack-plugin
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 03:23:03 +01:00
github-actions[bot]
c2e7b34d04 Merge pull request #56696 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/debounce-3.0.0
build(deps): bump debounce from 2.2.0 to 3.0.0 in /build/frontend-legacy
2025-11-26 02:19:11 +00:00
nextcloud-command
f4736586dc chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-26 01:37:18 +00:00
Ferdinand Thiessen
776c960308 refactor: adjust code for debounce v3
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-26 01:34:37 +00:00
dependabot[bot]
c3ec3aa346 build(deps): bump debounce from 2.2.0 to 3.0.0 in /build/frontend-legacy
Bumps [debounce](https://github.com/sindresorhus/debounce) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/sindresorhus/debounce/releases)
- [Commits](https://github.com/sindresorhus/debounce/compare/v2.2.0...v3.0.0)

---
updated-dependencies:
- dependency-name: debounce
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 01:34:37 +00:00
github-actions[bot]
0c14a54d52 Merge pull request #56634 from nextcloud/dependabot/npm_and_yarn/vue-3.5.25
build(deps): bump vue from 3.5.24 to 3.5.25
2025-11-26 01:19:36 +00:00
github-actions[bot]
748e92e5a6 Merge pull request #56697 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/nextcloud/webpack-vue-config-7.0.2
build(deps-dev): bump @nextcloud/webpack-vue-config from 7.0.1 to 7.0.2 in /build/frontend-legacy
2025-11-26 01:03:17 +00:00
nextcloud-command
da56265e62 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-26 01:28:01 +01:00
dependabot[bot]
a9e3734aa7 build(deps): bump vue from 3.5.24 to 3.5.25
Bumps [vue](https://github.com/vuejs/core) from 3.5.24 to 3.5.25.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.24...v3.5.25)

---
updated-dependencies:
- dependency-name: vue
  dependency-version: 3.5.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 01:25:17 +01:00
github-actions[bot]
1c116c38c8 Merge pull request #56698 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/camelcase-9.0.0
build(deps): bump camelcase from 8.0.0 to 9.0.0 in /build/frontend-legacy
2025-11-26 01:24:14 +01:00
Nextcloud bot
87b3cbd5e3 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-26 00:14:11 +00:00
github-actions[bot]
1fd57d057e Merge pull request #56674 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/marked-17.0.1
build(deps): bump marked from 17.0.0 to 17.0.1 in /build/frontend-legacy
2025-11-25 23:53:31 +00:00
nextcloud-command
7225c09c43 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-25 23:52:27 +00:00
Andy Scherzinger
8679fd1cc0 Merge pull request #56673 from nextcloud/dependabot/npm_and_yarn/vitest-b8deea5be8
build(deps-dev): bump the vitest group across 2 directories with 2 updates
2025-11-26 00:48:53 +01:00
Andy Scherzinger
e4f3dcab03 Merge pull request #56659 from nextcloud/dependabot/github_actions/github-actions-3f1f41f4cb
build(deps): bump the github-actions group across 1 directory with 10 updates
2025-11-26 00:48:21 +01:00
github-actions[bot]
9cd49cbe34 Merge pull request #56695 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/msw-2.12.3
build(deps-dev): bump msw from 2.12.2 to 2.12.3 in /build/frontend-legacy
2025-11-25 23:44:54 +00:00
dependabot[bot]
e961352fbe build(deps): bump camelcase in /build/frontend-legacy
Bumps [camelcase](https://github.com/sindresorhus/camelcase) from 8.0.0 to 9.0.0.
- [Release notes](https://github.com/sindresorhus/camelcase/releases)
- [Commits](https://github.com/sindresorhus/camelcase/compare/v8.0.0...v9.0.0)

---
updated-dependencies:
- dependency-name: camelcase
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 00:44:08 +01:00
github-actions[bot]
f9788c956d Merge pull request #56687 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/types/dockerode-3.3.47
build(deps-dev): remove `@types/dockerode` and `@types/wait-on` in `/build/frontend-legacy`
2025-11-25 23:07:09 +00:00
dependabot[bot]
550e54e682 build(deps-dev): bump @nextcloud/webpack-vue-config
Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud-libraries/webpack-vue-config) from 7.0.1 to 7.0.2.
- [Release notes](https://github.com/nextcloud-libraries/webpack-vue-config/releases)
- [Changelog](https://github.com/nextcloud-libraries/webpack-vue-config/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/webpack-vue-config/compare/v7.0.1...v7.0.2)

---
updated-dependencies:
- dependency-name: "@nextcloud/webpack-vue-config"
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 22:59:15 +00:00
dependabot[bot]
e0a9fdc26d build(deps-dev): bump msw in /build/frontend-legacy
Bumps [msw](https://github.com/mswjs/msw) from 2.12.2 to 2.12.3.
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.12.2...v2.12.3)

---
updated-dependencies:
- dependency-name: msw
  dependency-version: 2.12.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 22:58:51 +00:00
dependabot[bot]
19cff44eac build(deps-dev): bump the vitest group across 2 directories with 2 updates
Bumps the vitest group with 1 update in the / directory: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8).
Bumps the vitest group with 1 update in the /build/frontend-legacy directory: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8).


Updates `@vitest/coverage-v8` from 4.0.13 to 4.0.14
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.14/packages/coverage-v8)

Updates `vitest` from 4.0.13 to 4.0.14
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.14/packages/vitest)

Updates `@vitest/coverage-v8` from 4.0.13 to 4.0.14
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.14/packages/coverage-v8)

Updates `vitest` from 4.0.13 to 4.0.14
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.14/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.0.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 4.0.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.0.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 4.0.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 22:58:43 +00:00
dependabot[bot]
2af533e000 Merge pull request #56636 from nextcloud/dependabot/composer/build/integration/behat/behat-3.27.0 2025-11-25 22:58:28 +00:00
github-actions[bot]
0f759d4fda Merge pull request #56677 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/core-js-3.47.0
build(deps): bump core-js from 3.46.0 to 3.47.0 in /build/frontend-legacy
2025-11-25 22:55:38 +00:00
dependabot[bot]
949cf19f21 build(deps): bump marked from 17.0.0 to 17.0.1 in /build/frontend-legacy
Bumps [marked](https://github.com/markedjs/marked) from 17.0.0 to 17.0.1.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.0...v17.0.1)

---
updated-dependencies:
- dependency-name: marked
  dependency-version: 17.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 23:55:36 +01:00
dependabot[bot]
5c5ef65b6f build(deps-dev): remove unneeded @types/dockerode and @types/wait-on
Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 23:29:48 +01:00
nextcloud-command
797ee31afe chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-25 22:11:39 +00:00
Ferdinand Thiessen
90436835ce ci: fix changes detection for legacy frontend
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-25 23:00:46 +01:00
dependabot[bot]
3258a91e39 build(deps): bump core-js in /build/frontend-legacy
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.46.0 to 3.47.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.47.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 23:00:46 +01:00
github-actions[bot]
4205247cfa Merge pull request #56635 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/sass-1.94.2
build(deps-dev): bump sass from 1.93.3 to 1.94.2 in /build/frontend-legacy
2025-11-25 21:39:06 +00:00
dependabot[bot]
5651f6e568 build(deps-dev): bump sass in /build/frontend-legacy
Bumps [sass](https://github.com/sass/dart-sass) from 1.93.3 to 1.94.2.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.93.3...1.94.2)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.94.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 22:11:14 +01:00
github-actions[bot]
7f78a8e3ec Merge pull request #56680 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/nextcloud/router-3.1.0
build(deps): bump @nextcloud/router from 3.0.1 to 3.1.0 in /build/frontend-legacy
2025-11-25 22:06:37 +01:00
github-actions[bot]
4f6360e974 Merge pull request #56675 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/nextcloud/event-bus-3.3.3
build(deps): bump @nextcloud/event-bus from 3.3.2 to 3.3.3 in /build/frontend-legacy
2025-11-25 22:01:08 +01:00
Louis
6c3b698ea3 Merge pull request #56223 from nextcloud/artonge/fix/remove_unecessary_condition
fix(View): Normalize path in getAbsolutePath
2025-11-25 21:55:51 +01:00
github-actions[bot]
d1dfb8388d Merge pull request #56678 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/nextcloud/typings-1.10.0
build(deps-dev): bump @nextcloud/typings from 1.9.1 to 1.10.0 in /build/frontend-legacy
2025-11-25 21:53:06 +01:00
github-actions[bot]
b39fb71f69 Merge pull request #56679 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/webpack-5.103.0
build(deps-dev): bump webpack from 5.102.1 to 5.103.0 in /build/frontend-legacy
2025-11-25 21:52:47 +01:00
Louis
673815b86a Merge pull request #56574 from nextcloud/artonge/fix/readd_attributes_checkboxes
fix(user_ldap): Re-introduce easy login attributes checkboxes
2025-11-25 21:46:09 +01:00
dependabot[bot]
02925a6098 build(deps): bump @nextcloud/router in /build/frontend-legacy
Bumps [@nextcloud/router](https://github.com/nextcloud-libraries/nextcloud-router) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-router/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-router/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-router/compare/v3.0.1...v3.1.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/router"
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 20:44:45 +00:00
github-actions[bot]
ccc0e9fbd3 Merge pull request #56684 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/p-queue-9.0.1
build(deps): bump p-queue from 9.0.0 to 9.0.1 in /build/frontend-legacy
2025-11-25 21:42:55 +01:00
github-actions[bot]
2f65d18eee Merge pull request #56689 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/nextcloud/paths-2.3.0
build(deps): bump @nextcloud/paths from 2.2.2 to 2.3.0 in /build/frontend-legacy
2025-11-25 21:38:13 +01:00
nextcloud-command
6a1712d419 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-25 19:06:21 +00:00
Louis Chmn
ea4e5ae3e7 fix(user_ldap): Use correct property to update login filter
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 18:59:43 +00:00
Louis Chmn
499bbd479a fix(user_ldap): Re-introduce easy login attributes checkboxes
Fix https://github.com/nextcloud/server/issues/55805

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 18:59:43 +00:00
Ferdinand Thiessen
8b293d1f05 Merge pull request #56660 from nextcloud/chore/eslint-config
chore: update `@nextcloud/eslint-config` to v9.0.0-rc.6 and fix issues
2025-11-25 19:40:00 +01:00
Louis Chmn
73c6b17fae fix(View): Normalize path in getAbsolutePath
This allow to match files more consistently in HookConnector::getNodeForPath

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 19:30:53 +01:00
Louis Chmn
b344b5323d fix(collaboration): Replace NonExisting* check on NodeDeletedEvent by a try/catch
Deleted nodes are always non existing, but some of them have a fileInfo.
This ensure that we still run the cleanup but in a safe way.

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 19:30:53 +01:00
Daniel
f960afc092 Merge pull request #56562 from nextcloud/bug/noid/checked-state-for-example-content
fix state for example content checkboxes
2025-11-25 19:00:17 +01:00
dependabot[bot]
0474011173 build(deps): bump @nextcloud/paths in /build/frontend-legacy
Bumps [@nextcloud/paths](https://github.com/nextcloud-libraries/nextcloud-paths) from 2.2.2 to 2.3.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-paths/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-paths/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-paths/compare/v2.2.2...v2.3.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/paths"
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 17:16:10 +00:00
dependabot[bot]
3f5d5fb120 build(deps): bump p-queue from 9.0.0 to 9.0.1 in /build/frontend-legacy
Bumps [p-queue](https://github.com/sindresorhus/p-queue) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/sindresorhus/p-queue/releases)
- [Commits](https://github.com/sindresorhus/p-queue/compare/v9.0.0...v9.0.1)

---
updated-dependencies:
- dependency-name: p-queue
  dependency-version: 9.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 17:14:58 +00:00
dependabot[bot]
943f19ccc0 build(deps-dev): bump webpack in /build/frontend-legacy
Bumps [webpack](https://github.com/webpack/webpack) from 5.102.1 to 5.103.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.102.1...v5.103.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.103.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 17:13:44 +00:00
dependabot[bot]
60adc36063 build(deps-dev): bump @nextcloud/typings in /build/frontend-legacy
Bumps [@nextcloud/typings](https://github.com/nextcloud-libraries/nextcloud-typings) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-typings/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-typings/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-typings/compare/v1.9.1...v1.10.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/typings"
  dependency-version: 1.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 17:13:30 +00:00
dependabot[bot]
a422c3354e build(deps): bump @nextcloud/event-bus in /build/frontend-legacy
Bumps [@nextcloud/event-bus](https://github.com/nextcloud/nextcloud-event-bus) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/nextcloud/nextcloud-event-bus/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-event-bus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/nextcloud-event-bus/compare/v3.3.2...v3.3.3)

---
updated-dependencies:
- dependency-name: "@nextcloud/event-bus"
  dependency-version: 3.3.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 17:12:44 +00:00
Sebastian Krupinski
fac380fb88 Merge pull request #55476 from nextcloud/fix/l10n/generic-language-no-user
fix(l10n): do not consider user language when getting the generic one
2025-11-25 10:42:56 -05:00
nextcloud-command
93dadb3c94 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-25 15:33:28 +00:00
Ferdinand Thiessen
f1d28332a6 chore: manually adjust event names (update:checked to update:modelValue)
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-25 16:25:54 +01:00
Ferdinand Thiessen
9d25d20a3c chore: baseline what is not auto-fixable in legacy UI
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-25 16:25:54 +01:00
Ferdinand Thiessen
42112c8d30 chore: auto fix ESLint issues
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-25 16:25:54 +01:00
Ferdinand Thiessen
63b401d872 chore(dev-deps): update @nextcloud/eslint-config to v9.0.0-rc.6
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-25 16:25:54 +01:00
Sebastian Krupinski
5806dfbdcd Merge pull request #55473 from nextcloud/fix/imip-set-language-by-user
fix(CalDAV): imip set language per user
2025-11-25 09:55:32 -05:00
Daniel Kesselberg
5bcbdda184 chore(assets): Recompile assets
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-11-25 15:47:16 +01:00
Daniel Kesselberg
b17c207839 fix: checkbox for example content
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-11-25 15:44:21 +01:00
Robin Appelman
045dc79b01 Merge pull request #56626 from nextcloud/fix/fix/theming-legacy-app-config
Fix/fix/theming legacy app config
2025-11-25 15:35:04 +01:00
Ferdinand Thiessen
74351255db Merge pull request #56570 from nextcloud/artonge/debt/migrate_user_ldap_vu3
refactor(user_ldap): Migrate to Vue3
2025-11-25 15:17:48 +01:00
Andy Scherzinger
e0cadec1f0 Merge pull request #56618 from nextcloud/enh/noid/testing-chat-provider
Add core:text2text:chat fake provider in the testing app
2025-11-25 15:14:12 +01:00
Jana Peper
694eccef63 fix: use delete method instead of deleteByTokenId
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
6c855d008f feat: error handling
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
b3645421af fix: regenerate openapi.json
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
b02966a481 fix: remove redundant db column
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
4dab6217a2 fix: include review feedback
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
5e1f2d2353 fix: translate token name
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
75f7bed617 refactor: use constants for db column types
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
3296842a5f chore: bump version nr
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
eafb602b4e fix: fix psalm
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
134943e109 feat: add information about token validity times
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
e232b481bc fix: add default to tokenNeeded
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
5ad1ea3726 fix: rename field names of tokenNeeded
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
5689d9488e feat: token deletion logic
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
be9b246ffa fix: handling of unavailable uids
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
2daff2ddae fix: Apply suggestions from code review
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
db158ce413 feat: add tokens in the webhook call data
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
Jana Peper
563aaf5ae5 feat: add token array to webhook definition and db entries
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-11-25 15:00:51 +01:00
SebastianKrupinski
345140ac88 fix: imip set language per user
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-11-25 08:47:07 -05:00
dependabot[bot]
7a94858a06 build(deps): bump the github-actions group across 1 directory with 10 updates
Bumps the github-actions group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `5.0.0` | `6.0.0` |
| [shivammathur/setup-php](https://github.com/shivammathur/setup-php) | `2.35.4` | `2.35.5` |
| [actions/github-script](https://github.com/actions/github-script) | `7.0.1` | `8.0.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.29.7` | `4.31.5` |
| [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) | `4.0.0` | `5.0.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.6.2` | `5.0.0` |
| [codecov/codecov-action](https://github.com/codecov/codecov-action) | `5.5.0` | `5.5.1` |
| [LizardByte/actions](https://github.com/lizardbyte/actions) | `2025.814.40518` | `2025.1028.23217` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `7.0.8` | `7.0.9` |
| [actions/stale](https://github.com/actions/stale) | `10.0.0` | `10.1.0` |



Updates `actions/checkout` from 5.0.0 to 6.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...1af3b93b6815bc44a9784bd300feb67ff0d1eeb3)

Updates `shivammathur/setup-php` from 2.35.4 to 2.35.5
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/2.35.4...bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f)

Updates `actions/github-script` from 7.0.1 to 8.0.0
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7.0.1...ed597411d8f924073f98dfc5c65a23a2325f34cd)

Updates `github/codeql-action` from 3.29.7 to 4.31.5
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.29.7...fdbfb4d2750291e159f0156def62b853c2798ca2)

Updates `peter-evans/create-or-update-comment` from 4.0.0 to 5.0.0
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](https://github.com/peter-evans/create-or-update-comment/compare/v4...e8674b075228eee787fea43ef493e45ece1004c9)

Updates `actions/upload-artifact` from 4.6.2 to 5.0.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.6.2...330a01c490aca151604b8cf639adc76d48f6c5d4)

Updates `codecov/codecov-action` from 5.5.0 to 5.5.1
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5.5.0...5a1091511ad55cbe89839c7260b706298ca349f7)

Updates `LizardByte/actions` from 2025.814.40518 to 2025.1028.23217
- [Release notes](https://github.com/lizardbyte/actions/releases)
- [Commits](bff0a19374...329b1bcefe)

Updates `peter-evans/create-pull-request` from 7.0.8 to 7.0.9
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v7.0.8...84ae59a2cdc2258d6fa0732dd66352dddae2a412)

Updates `actions/stale` from 10.0.0 to 10.1.0
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](3a9db7e6a4...5f858e3efb)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: shivammathur/setup-php
  dependency-version: 2.35.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/github-script
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: github/codeql-action
  dependency-version: 4.31.5
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: peter-evans/create-or-update-comment
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: codecov/codecov-action
  dependency-version: 5.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: LizardByte/actions
  dependency-version: 2025.1028.23217
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: peter-evans/create-pull-request
  dependency-version: 7.0.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/stale
  dependency-version: 10.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 13:06:41 +00:00
Julien Veyssier
9f78ccbfd0 feat(testing): add core:text2text:chat fake provider in the testing app
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-11-25 13:42:08 +01:00
nextcloud-command
d4d6df5c66 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-25 13:36:23 +01:00
Louis Chmn
3d847cd801 fix(user_ldap): Improve typing
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 13:36:23 +01:00
Louis Chmn
85721eef99 fix(user_ldap): Correct label and placeholder usage
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 13:36:23 +01:00
Louis Chmn
d89b5e2d91 fix(user_ldap): Use v-model for settings inputs
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 13:36:23 +01:00
Louis Chmn
1e17a9fe7a refactor(user_ldap): Migrate to Vue3
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 13:36:23 +01:00
Louis Chmn
4f9efc4c81 chore(user_ldap): Delete legacy templates
Not needed anymore after the vue migration

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 13:36:23 +01:00
Ferdinand Thiessen
c4da3cca34 Merge pull request #56625 from nextcloud/chore/workflows
ci: update workflows from organization
2025-11-25 13:35:40 +01:00
Andy Scherzinger
4f25051968 Merge pull request #56631 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/vite-939f50a5f3
build(deps-dev): bump vite from 7.2.2 to 7.2.4 in /build/frontend-legacy in the vite group across 1 directory
2025-11-25 12:36:00 +01:00
Ferdinand Thiessen
930ec23d0c test: fix setup with coverage
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-25 12:18:55 +01:00
Ferdinand Thiessen
0e60c0a3ab chore: ignore SPDX-header-like lines in the license plugin
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-25 12:18:55 +01:00
Ferdinand Thiessen
66361fe56e ci: update workflows from organization
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-25 12:18:55 +01:00
Stephan Orbaugh
a7dd4e8c05 Merge pull request #56498 from nextcloud/fix/fix-deleting-broken-shares
fix(files_sharing): Allow deleting a share of a missing file
2025-11-25 11:46:29 +01:00
dependabot[bot]
14eb82f350 build(deps-dev): bump vite
Bumps the vite group with 1 update in the /build/frontend-legacy directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 7.2.2 to 7.2.4
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.2.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 09:54:52 +00:00
Ferdinand Thiessen
3f083bb37a Merge pull request #56632 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/vitest-05d30e5828
build(deps-dev): bump the vitest group across 1 directory with 2 updates
2025-11-25 10:44:04 +01:00
Louis
0b3041586b Merge pull request #55981 from nextcloud/artonge/fix/encryption/increment_lastChunkNr
fix(encryption): Increment `lastChunkNr` when size is off
2025-11-25 10:18:43 +01:00
F. E Noel Nfebe
80b04bd8d2 Merge pull request #56501 from nextcloud/fix/lookup-trusted-server-filter
fix(sharing): Add isTrustedServer flag to lookup results
2025-11-25 09:44:27 +01:00
Ferdinand Thiessen
29325b4a7e Merge pull request #56293 from nextcloud/dependabot/composer/build/integration/symfony/event-dispatcher-7.3.3
build(deps-dev): bump symfony/event-dispatcher from 6.4.25 to 7.3.3 in /build/integration
2025-11-25 02:24:02 +01:00
Nextcloud bot
75d04defd6 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-25 00:14:05 +00:00
nfebe
40246d9a19 fix(sharing): Add isTrustedServer flag to lookup results
When `show_federated_shares_to_trusted_servers_as_internal` is enabled,
lookup server results were being filtered out because they lacked the
`isTrustedServer` flag. This adds the flag to lookup results by:

- Injecting TrustedServers service into LookupPlugin
- Adding `server` and `isTrustedServer` fields to each lookup result
- Updating tests to reflect new structure

This ensures lookup results from trusted servers appear in internal
sharing while non-trusted servers are correctly filtered out.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-11-24 23:32:40 +01:00
dependabot[bot]
3c73af0876 build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.26.0 to 3.27.0.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.26.0...v3.27.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.27.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 19:15:14 +00:00
dependabot[bot]
5498c1c7a8 build(deps-dev): bump the vitest group across 1 directory with 2 updates
Bumps the vitest group with 2 updates in the /build/frontend-legacy directory: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 3.2.4 to 4.0.13
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.13/packages/coverage-v8)

Updates `vitest` from 3.2.4 to 4.0.13
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.13/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 4.0.13
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 4.0.13
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 19:13:28 +00:00
Andy Scherzinger
9d92f205a9 Merge pull request #56588 from nextcloud/dependabot/npm_and_yarn/vitest-4.0.13
build(deps-dev): bump vitest from 3.2.4 to 4.0.13
2025-11-24 19:17:44 +01:00
Andy Scherzinger
ce37473d86 Merge pull request #56619 from nextcloud/chore/eslint
chore(eslint): fix linting on CI and resolve issues
2025-11-24 19:16:48 +01:00
Robin Appelman
561d3ded23 fix: fix theming config value casting
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-24 18:36:26 +01:00
Robin Appelman
ad5f23f845 test: add test for theming config casting
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-24 18:36:24 +01:00
Andy Scherzinger
9d41f4bcf5 Merge pull request #56587 from nextcloud/dependabot/npm_and_yarn/sass-1.94.2
build(deps-dev): bump sass from 1.94.0 to 1.94.2
2025-11-24 17:52:30 +01:00
dependabot[bot]
76042a1c5a Merge pull request #56582 from nextcloud/dependabot/npm_and_yarn/zip.js/zip.js-2.8.11 2025-11-24 16:49:46 +00:00
dependabot[bot]
1917f812b0 build(deps-dev): bump sass from 1.94.0 to 1.94.2
Bumps [sass](https://github.com/sass/dart-sass) from 1.94.0 to 1.94.2.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.94.0...1.94.2)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.94.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 16:42:34 +00:00
Andy Scherzinger
eb8108e407 Merge pull request #56567 from nextcloud/carl/disable-users-group-admin-test
ci: Disable always failing tests in users-group-admin.cy.ts
2025-11-24 17:36:14 +01:00
Ferdinand Thiessen
2a8c20b946 chore: adjust vitest infrastructure to properly run both suits
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-24 17:09:01 +01:00
Ferdinand Thiessen
1b0dd02337 chore(deps): align vitest and @vitest/coverage-v8
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-24 17:09:01 +01:00
dependabot[bot]
764490b11b build(deps-dev): bump vitest from 3.2.4 to 4.0.13
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 3.2.4 to 4.0.13.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.13/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 4.0.13
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 17:09:01 +01:00
Andy Scherzinger
56171e31c7 Merge pull request #56584 from nextcloud/dependabot/npm_and_yarn/stylelint-16.26.0
build(deps-dev): bump stylelint from 16.25.0 to 16.26.0
2025-11-24 17:06:14 +01:00
nextcloud-command
add01c7151 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-24 15:58:07 +00:00
dependabot[bot]
be422e4371 build(deps-dev): bump stylelint from 16.25.0 to 16.26.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.25.0 to 16.26.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.25.0...16.26.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.26.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 16:49:06 +01:00
nextcloud-command
ba146df9a8 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-24 15:33:15 +00:00
dependabot[bot]
858cbd11ba build(deps-dev): bump @zip.js/zip.js from 2.8.10 to 2.8.11
Bumps [@zip.js/zip.js](https://github.com/gildas-lormeau/zip.js) from 2.8.10 to 2.8.11.
- [Release notes](https://github.com/gildas-lormeau/zip.js/releases)
- [Commits](https://github.com/gildas-lormeau/zip.js/compare/v2.8.10...v2.8.11)

---
updated-dependencies:
- dependency-name: "@zip.js/zip.js"
  dependency-version: 2.8.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 14:46:01 +00:00
nextcloud-command
1dff595ee3 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-24 14:06:12 +00:00
Ferdinand Thiessen
5540671cdb chore: fixed linter issues forgotten in new frontend code
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-24 14:29:27 +01:00
Ferdinand Thiessen
314acfc379 chore(eslint): split baseline for legacy and current frontend
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-24 14:29:27 +01:00
Ferdinand Thiessen
befc68cdd4 chore: fail when one of the two fronend scripts fail
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-24 14:29:27 +01:00
Carl Schwan
f51a8f8f8c ci: Disable always failing tests in users-group-admin.cy.ts
They keep failing with the Electron Renderer process crashing for weeks
now, so disable them.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-24 11:14:06 +01:00
Côme Chilliet
cc66d203d4 chore: Improve wording in debug log
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2025-11-24 10:29:46 +01:00
Côme Chilliet
a60f9494ec fix(files_sharing): Allow deleting a share of a missing file
This can happen in various scenarios, we should allow the user to delete
 the share in this situation.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-11-24 10:29:46 +01:00
Louis Chmn
30d567fd0e fix(encryption): Increment lastChunkNr when size is off
When computing the unencrypted file size, we need the size of the last encrypted chunk as its size is usually not the regular 8192 bits.

To avoid reading the whole file, we seek directly to that last chunk based on the expected file size. When the expected file size is smaller than the actual one, we have a logic in place to continue reading until we reach the end of the file.

In that logic, we forgot to increment the `$lastChunkNr` which is important when we later check the signature of the chunk.

This commit adds that missing increment.

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-21 17:34:19 +01:00
yemkareems
d134b236a4 fix: composer run cs:fix removed unused namespace
Signed-off-by: yemkareems <yemkareems@gmail.com>
2025-11-21 16:37:33 +05:30
yemkareems
bf23fbb7bb fix: removed the runEncryption Method as it is not required
Signed-off-by: yemkareems <yemkareems@gmail.com>
2025-11-20 11:32:35 +05:30
yemkareems
26e2ff9dca fix: removed the -n option from options, added the check and made default answer to both questions true to support -n run directly
Signed-off-by: yemkareems <yemkareems@gmail.com>
2025-11-19 15:52:47 +05:30
yemkareems
d420b3f157 fix: added the interactive condition to the password question and in non-interactive mode sent the password directly
Signed-off-by: yemkareems <yemkareems@gmail.com>
2025-11-14 16:05:14 +05:30
yemkareems
93c3079637 fix: added the option to support no-interaction and added a check to run encryption non-interactive only when -n option is present
Signed-off-by: yemkareems <yemkareems@gmail.com>
2025-11-14 12:15:49 +05:30
yemkareems
7e546c8377 fix: support -n option to encrypt-all command to allow to run in non-interactive mode
Signed-off-by: yemkareems <yemkareems@gmail.com>
2025-11-13 19:53:03 +05:30
Richard Steinmetz
ccc0c3c25f fix(l10n): do not consider user language when getting the generic one
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-11-10 19:50:19 -05:00
dependabot[bot]
0ab5f17300 build(deps-dev): bump symfony/event-dispatcher in /build/integration
Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 6.4.25 to 7.3.3.
- [Release notes](https://github.com/symfony/event-dispatcher/releases)
- [Changelog](https://github.com/symfony/event-dispatcher/blob/7.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/event-dispatcher/compare/v6.4.25...v7.3.3)

---
updated-dependencies:
- dependency-name: symfony/event-dispatcher
  dependency-version: 7.3.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-08 02:12:30 +00:00
Josh
182836b68d fix: drop unnecessary toggles in .htaccess
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-08-20 15:18:15 -04:00
Josh
a0c3dd1eb4 chore: refactor .htaccess
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-08-20 14:07:03 -04:00
1141 changed files with 10941 additions and 10656 deletions

View File

@@ -53,6 +53,15 @@ updates:
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
groups:
vite:
patterns:
- "vite"
- "@nextcloud/vite-config"
vitest:
patterns:
- "vitest"
- "@vitest/*"
# Latest stable release
# Composer dependencies for linting and testing

View File

@@ -52,13 +52,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
@@ -81,13 +81,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite

View File

@@ -27,7 +27,7 @@ jobs:
steps:
- name: Set server major version environment
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
@@ -37,13 +37,13 @@ jobs:
if (match) {
console.log('Setting server_major to ' + match[1]);
core.exportVariable('server_major', match[1]);
console.log('Setting current_month to ' + (new Date()).toISOString().substr(0, 7));
core.exportVariable('current_month', (new Date()).toISOString().substr(0, 7));
console.log('Setting current_day to ' + (new Date()).toISOString().substr(0, 10));
core.exportVariable('current_day', (new Date()).toISOString().substr(0, 10));
}
- name: Checking if server ${{ env.server_major }} is EOL
if: ${{ env.server_major != '' }}
run: |
curl -s https://raw.githubusercontent.com/nextcloud-releases/updater_server/production/config/major_versions.json \
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99" | . >= "${{ env.current_month }}"' \
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99-99" | . >= "${{ env.current_day }}"' \
| grep -q true

View File

@@ -29,7 +29,7 @@ jobs:
steps:
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |

View File

@@ -31,7 +31,7 @@ jobs:
- 'version.php'
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
@@ -41,7 +41,7 @@ jobs:
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT"
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |

View File

@@ -27,7 +27,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false

View File

@@ -32,18 +32,18 @@ jobs:
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
uses: github/codeql-action/init@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
uses: github/codeql-action/analyze@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5
with:
category: "/language:${{matrix.language}}"

View File

@@ -30,7 +30,7 @@ jobs:
steps:
- name: Get repository from pull request comment
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
id: get-repository
with:
github-token: ${{secrets.GITHUB_TOKEN}}
@@ -57,7 +57,7 @@ jobs:
require: write
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -83,7 +83,7 @@ jobs:
id: comment-branch
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
@@ -103,7 +103,7 @@ jobs:
key: git-repo
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
# Needed to allow force push later
persist-credentials: true
@@ -120,11 +120,11 @@ jobs:
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: package-engines-versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
cache: npm
@@ -136,26 +136,26 @@ jobs:
if: ${{ contains(needs.init.outputs.arg1, 'rebase') }}
run: |
git fetch origin '${{ needs.init.outputs.base_ref }}:${{ needs.init.outputs.base_ref }}'
# Start the rebase
git rebase 'origin/${{ needs.init.outputs.base_ref }}' || {
# Handle rebase conflicts in a loop
while [ -d .git/rebase-merge ] || [ -d .git/rebase-apply ]; do
echo "Handling rebase conflict..."
# Remove and checkout /dist and /js folders from the base branch
if [ -d "dist" ]; then
rm -rf dist
git checkout origin/${{ needs.init.outputs.base_ref }} -- dist/ 2>/dev/null || echo "No dist folder in base branch"
fi
if [ -d "js" ]; then
rm -rf js
rm -rf js
git checkout origin/${{ needs.init.outputs.base_ref }} -- js/ 2>/dev/null || echo "No js folder in base branch"
fi
# Stage all changes
git add .
# Check if there are any changes after resolving conflicts
if git diff --cached --quiet; then
echo "No changes after conflict resolution, skipping commit"
@@ -164,7 +164,7 @@ jobs:
echo "Changes found, continuing rebase without editing commit message"
git -c core.editor=true rebase --continue
fi
# Break if rebase is complete
if [ ! -d .git/rebase-merge ] && [ ! -d .git/rebase-apply ]; then
break
@@ -213,7 +213,7 @@ jobs:
run: git push --force-with-lease origin "$HEAD_REF"
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -20,7 +20,7 @@ jobs:
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -38,7 +38,7 @@ jobs:
id: comment-branch
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
fetch-depth: 0
@@ -46,7 +46,7 @@ jobs:
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Register server reference to fallback to master branch
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
@@ -71,7 +71,7 @@ jobs:
git config --local user.name 'nextcloud-command'
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
if: ${{ env.server_ref == '' }}
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
@@ -91,7 +91,7 @@ jobs:
git push
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -22,7 +22,7 @@ env:
# Usually it's the base branch of the PR, but for pushes it's the branch itself.
# e.g. 'main', 'stable27' or 'feature/my-feature'
# n.b. server will use head_ref, as we want to test the PR branch.
BRANCH: ${{ github.head_ref || github.ref_name }}
BRANCH: ${{ github.base_ref || github.ref_name }}
permissions:
@@ -48,7 +48,7 @@ jobs:
exit 1
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
# We need to checkout submodules for 3rdparty
@@ -58,7 +58,7 @@ jobs:
id: check_composer
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
with:
files: "composer.json"
files: 'composer.json'
- name: Install composer dependencies
if: steps.check_composer.outputs.files_exists == 'true'
@@ -68,11 +68,11 @@ jobs:
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: "^20"
fallbackNpm: "^10"
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -84,9 +84,6 @@ jobs:
npm ci
TESTING=true npm run build --if-present
- name: Show cypress version
run: npm run cypress:version
- name: Save context
uses: buildjet/cache/save@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
with:
@@ -163,7 +160,7 @@ jobs:
path: ./
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ needs.init.outputs.nodeVersion }}
@@ -174,7 +171,7 @@ jobs:
run: ./node_modules/cypress/bin/cypress install
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@b8ba51a856ba5f4c15cf39007636d4ab04f23e3c # v6.10.2
uses: cypress-io/github-action@7ef72e250a9e564efb4ed4c2433971ada4cc38b4 # v6.10.4
with:
# We already installed the dependencies in the init job
install: false
@@ -198,10 +195,10 @@ jobs:
SETUP_TESTING: ${{ matrix.containers == 'setup' && 'true' || '' }}
- name: Upload snapshots and videos
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
if: always()
with:
name: snapshots_videos_${{ matrix.containers }}
name: snapshots_${{ matrix.containers }}
path: |
cypress/snapshots
cypress/videos
@@ -220,8 +217,8 @@ jobs:
if: failure() && matrix.containers != 'component'
run: docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} tar -cvjf - data > data.tar
- name: Upload data dir archive
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
- name: Upload data archive
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
if: failure() && matrix.containers != 'component'
with:
name: nc_data_${{ matrix.containers }}

View File

@@ -3,10 +3,10 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Dependabot
name: Auto approve Dependabot PRs
on:
pull_request_target: # zizmor: ignore[dangerous-triggers]
@@ -29,6 +29,8 @@ jobs:
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
# for alexwilson/enable-github-automerge-action to approve PRs
contents: write
steps:
- name: Disabled on forks
@@ -37,13 +39,20 @@ jobs:
echo 'Can not approve PRs from forks'
exit 1
- uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
id: branchname
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# GitHub actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
- uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Nextcloud bot approve and merge request
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
# Enable GitHub auto merge
- name: Auto merge
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
with:
target: minor
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -55,7 +55,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
@@ -71,7 +71,7 @@ jobs:
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp:/home/test -v /tmp/ftp:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -104,7 +104,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-files-external-ftp

View File

@@ -64,13 +64,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -104,7 +104,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-files-external-s3
@@ -152,13 +152,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -185,7 +185,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-files-external-s3

View File

@@ -55,7 +55,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
@@ -67,7 +67,7 @@ jobs:
if [[ '${{ matrix.sftpd }}' == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp 'test:test:::data'; fi
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -93,7 +93,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-files-external-sftp

View File

@@ -46,13 +46,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Checkout user_saml
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
repository: nextcloud/user_saml

View File

@@ -59,13 +59,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -99,7 +99,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-files-external-smb

View File

@@ -60,13 +60,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -97,7 +97,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-files-external-webdav

View File

@@ -53,13 +53,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -85,7 +85,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-files-external-generic

View File

@@ -24,14 +24,14 @@ jobs:
require: write
- name: Checkout github_helper
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
repository: nextcloud/github_helper
path: github_helper
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
path: server
@@ -73,7 +73,7 @@ jobs:
fi
- name: Set up php 8.2
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: 8.2
coverage: none

View File

@@ -53,13 +53,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -70,7 +70,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: LizardByte/actions/actions/setup_python@bff0a193747a3ac7930a665fc1d4b23eba583b99 # v2025.814.40518
uses: LizardByte/actions/actions/setup_python@329b1bcefe1cbe1ef289177471c9f2b2af98e6ca # v2025.1028.23217
with:
python-version: '2.7'

View File

@@ -52,13 +52,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

View File

@@ -67,13 +67,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

View File

@@ -97,14 +97,14 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Checkout Talk app
if: ${{ matrix.test-suite == 'videoverification_features' }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
repository: nextcloud/spreed
@@ -113,7 +113,7 @@ jobs:
- name: Checkout Activity app
if: ${{ matrix.test-suite == 'sharing_features' }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
repository: nextcloud/activity
@@ -121,7 +121,7 @@ jobs:
ref: ${{ matrix.activity-versions }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation

View File

@@ -56,7 +56,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
@@ -64,11 +64,11 @@ jobs:
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}

View File

@@ -44,16 +44,16 @@ jobs:
lint:
runs-on: ubuntu-latest
name: PHP CS fixer lint
name: php-cs
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
- name: Set up php8.1
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
- name: Set up php
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: 8.2
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite

View File

@@ -53,14 +53,15 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:

View File

@@ -25,7 +25,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
@@ -33,11 +33,11 @@ jobs:
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}

View File

@@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
#
# Commenting on closed issues usually is not spotted by contributors or maintainers.
# Meaning regressions will be overlooked and not fixed, so instead force people to open a new issue.
name: "Lock closed issues"
on:
schedule:
- cron: "0 3 * * *" # every day at 03:00 UTC
workflow_dispatch:
concurrency:
group: lock-threads
permissions:
issues: write
pull-requests: write
jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
issue-inactive-days: 30
issue-comment: >
This issue has been automatically locked because it has been closed for 30 days.
Please open a new issue if you have a similar problem.

View File

@@ -0,0 +1,99 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Node handlebars tests
on:
pull_request:
permissions:
contents: read
concurrency:
group: node-tests-handlebars-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '**/__tests__/**'
- '**/__mocks__/**'
- 'apps/*/src/**'
- 'apps/*/appinfo/info.xml'
- 'core/src/**'
- 'package.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
handlebars:
runs-on: ubuntu-latest
needs: [changes]
if: needs.changes.outputs.src != 'false'
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
run: npm ci
- name: Run compile
run: ./build/compile-handlebars-templates.sh
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, handlebars]
if: always()
name: test-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.handlebars.result != 'success' }}; then exit 1; fi

View File

@@ -44,25 +44,21 @@ jobs:
- 'apps/*/appinfo/info.xml'
- 'core/src/**'
- 'package.json'
- 'package-lock.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
versions:
runs-on: ubuntu-latest-low
test:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
if: needs.changes.outputs.src != 'false'
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
@@ -70,85 +66,39 @@ jobs:
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
fallbackNode: '^24'
fallbackNpm: '^11.3'
test:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
persist-credentials: false
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
- name: Install dependencies & build
run: |
npm ci
npm run build --if-present
- name: Test and process coverage
run: npm run test:coverage --if-present
- name: Collect coverage
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
with:
files: ./coverage/lcov.info
- name: Upload test results
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
handlebars:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
run: npm ci
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
- name: Run compile
run: ./build/compile-handlebars-templates.sh
# - name: Test
# run: npm run test --if-present
- name: Test and process coverage
run: npm run test:coverage
- name: Collect coverage
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./coverage/lcov.info,./coverage/legacy/lcov.info
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, test, handlebars]
needs: [changes, test]
if: always()
@@ -156,4 +106,4 @@ jobs:
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && (needs.test.result != 'success' || needs.handlebars.result != 'success') }}; then exit 1; fi
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' }}; then exit 1; fi

View File

@@ -37,14 +37,14 @@ jobs:
- '.github/workflows/**'
- '**/src/**'
- '**/appinfo/info.xml'
- 'core/css/*'
- 'core/img/**'
- 'package.json'
- 'package-lock.json'
- '**/package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
- 'core/css/*'
- 'core/img/**'
- 'version.php'
build:
@@ -56,7 +56,7 @@ jobs:
name: NPM build
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
@@ -64,17 +64,24 @@ jobs:
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
# This does not work on server as we have some git dependencies that "npm-package-lock-add-resolved" cannot handle
# - name: Validate package-lock.json # See https://github.com/npm/cli/issues/4460
# run: |
# npm i -g npm-package-lock-add-resolved@1.1.4
# npm-package-lock-add-resolved
# git --no-pager diff --exit-code
- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
@@ -83,7 +90,7 @@ jobs:
npm ci
npm run build --if-present
- name: Check webpack build changes
- name: Check build changes
run: |
bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"

View File

@@ -24,14 +24,17 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['main', 'master', 'stable32', 'stable31', 'stable30']
branches:
- ${{ github.event.repository.default_branch }}
- 'stable32'
- 'stable31'
name: npm-audit-fix-${{ matrix.branches }}
steps:
- name: Checkout
id: checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
ref: ${{ matrix.branches }}
@@ -41,11 +44,11 @@ jobs:
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -66,7 +69,7 @@ jobs:
- name: Create Pull Request
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7.0.9
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(deps): Fix npm audit'

View File

@@ -73,13 +73,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -110,7 +110,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-azure

View File

@@ -74,13 +74,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -116,7 +116,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-s3

View File

@@ -71,13 +71,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -106,7 +106,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-swift

View File

@@ -26,12 +26,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: '8.2'
extensions: ctype, curl, dom, fileinfo, gd, json, libxml, mbstring, openssl, pcntl, pdo, posix, session, simplexml, xml, xmlreader, xmlwriter, zip, zlib

View File

@@ -35,14 +35,14 @@ jobs:
exit 1
- name: Checkout server before PR
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
ref: ${{ github.event.pull_request.base.ref }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
@@ -98,14 +98,14 @@ jobs:
- name: Upload profiles
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
with:
name: profiles
path: |
before.json
after.json
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v7
if: failure() && steps.compare.outcome == 'failure'
with:
github-token: ${{secrets.GITHUB_TOKEN}}

View File

@@ -35,7 +35,7 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
@@ -46,7 +46,7 @@ jobs:
sudo apt-get install -y ffmpeg imagemagick libmagickcore-6.q16-3-extra
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, apcu, ldap

View File

@@ -90,13 +90,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -129,7 +129,7 @@ jobs:
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.db.xml
flags: phpunit-mariadb

View File

@@ -72,13 +72,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -103,7 +103,7 @@ jobs:
- name: Upload code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.xml
flags: phpunit-memcached

View File

@@ -121,13 +121,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -161,7 +161,7 @@ jobs:
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.db.xml
flags: phpunit-mysql

View File

@@ -90,13 +90,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -129,7 +129,7 @@ jobs:
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.db.xml
flags: phpunit-mysql

View File

@@ -75,13 +75,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -109,7 +109,7 @@ jobs:
- name: Upload nodb code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.nodb.xml
flags: phpunit-nodb

View File

@@ -72,13 +72,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite

View File

@@ -60,8 +60,6 @@ jobs:
fail-fast: false
matrix:
include:
- oracle-versions: '11'
php-versions: '8.2'
- oracle-versions: '18'
php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
@@ -101,13 +99,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -133,7 +131,7 @@ jobs:
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.db.xml
flags: phpunit-oci

View File

@@ -90,13 +90,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -124,7 +124,7 @@ jobs:
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.db.xml
flags: phpunit-postgres

View File

@@ -75,13 +75,13 @@ jobs:
steps:
- name: Checkout server
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
@@ -110,7 +110,7 @@ jobs:
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
with:
files: ./clover.db.xml
flags: phpunit-sqlite

View File

@@ -36,7 +36,7 @@ jobs:
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
- uses: nextcloud/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4 # main
- uses: nextcloud/pr-feedback-action@f0cab224dea8e1f282f9451de322f323c78fc7a5 # main
with:
feedback-message: |
Hello there,
@@ -50,6 +50,6 @@ jobs:
(If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
days-before-feedback: 14
start-date: '2024-04-30'
start-date: '2025-06-12'
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
exempt-bots: true

View File

@@ -19,9 +19,9 @@ jobs:
runs-on: ubuntu-latest-low
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
- name: REUSE Compliance Check
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
uses: fsfe/reuse-action@676e2d560c9a403aa252096d99fcab3e1132b0f5 # v6.0.0

View File

@@ -20,7 +20,7 @@ jobs:
issues: write
steps:
- uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v9
- uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v9
with:
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
stale-issue-message: >

View File

@@ -28,13 +28,13 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: '8.2'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@@ -59,13 +59,13 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@@ -83,7 +83,7 @@ jobs:
- name: Upload Security Analysis results to GitHub
if: always()
uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3
uses: github/codeql-action/upload-sarif@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3
with:
sarif_file: results.sarif
@@ -94,13 +94,13 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
@@ -125,13 +125,13 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
with:
persist-credentials: false
submodules: true
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
with:
php-version: '8.2'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip

View File

@@ -22,7 +22,7 @@ jobs:
name: update-ca-certificate-bundle-${{ matrix.branches }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
ref: ${{ matrix.branches }}
@@ -32,7 +32,7 @@ jobs:
run: curl --etag-compare build/ca-bundle-etag.txt --etag-save build/ca-bundle-etag.txt --output resources/config/ca-bundle.crt https://curl.se/ca/cacert.pem
- name: Create Pull Request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update CA certificate bundle'

View File

@@ -22,7 +22,7 @@ jobs:
name: update-code-signing-crl-${{ matrix.branches }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
ref: ${{ matrix.branches }}
@@ -35,7 +35,7 @@ jobs:
run: openssl crl -verify -in resources/codesigning/root.crl -CAfile resources/codesigning/root.crt -noout
- name: Create Pull Request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(security): Update code signing revocation list'

View File

@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest-low
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
with:
persist-credentials: false
submodules: true
@@ -107,7 +107,7 @@ jobs:
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412
if: steps.update-files.outputs.CHANGES_MADE == 'true'
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -24,7 +24,7 @@ jobs:
run: sleep 15
- name: Get PR details and update title
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |

238
.htaccess
View File

@@ -1,100 +1,178 @@
<IfModule mod_headers.c>
<IfModule mod_setenvif.c>
<IfModule mod_fcgid.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
<IfModule mod_setenvif.c>
<IfModule mod_fcgid.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
<IfModule mod_proxy_fcgi.c>
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
<IfModule mod_lsapi.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
</IfModule>
<IfModule mod_proxy_fcgi.c>
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
<IfModule mod_env.c>
# Add security and privacy related headers
# Avoid doubled headers by unsetting headers in "onsuccess" table,
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
<If "%{REQUEST_URI} =~ m#/login$#">
# Only on the login page we need any Origin or Referer header set.
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "same-origin"
</If>
<Else>
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "no-referrer"
</Else>
Header onsuccess unset X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
Header onsuccess unset X-Frame-Options
Header always set X-Frame-Options "SAMEORIGIN"
Header onsuccess unset X-Permitted-Cross-Domain-Policies
Header always set X-Permitted-Cross-Domain-Policies "none"
Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "noindex, nofollow"
SetEnv modHeadersAvailable true
</IfModule>
<IfModule mod_lsapi.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
</IfModule>
<IfModule mod_env.c>
# Add security and privacy related headers
# Avoid doubled headers by unsetting headers in "onsuccess" table,
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
# Add cache control for static resources
<FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|webp|ico|wasm|tflite)$">
<If "%{QUERY_STRING} =~ /(^|&)v=/">
Header set Cache-Control "max-age=15778463, immutable"
</If>
<Else>
Header set Cache-Control "max-age=15778463"
</Else>
</FilesMatch>
<If "%{REQUEST_URI} =~ m#/login$#">
# Only on the login page we need any Origin or Referer header set.
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "same-origin"
</If>
<Else>
Header onsuccess unset Referrer-Policy
Header always set Referrer-Policy "no-referrer"
</Else>
Header onsuccess unset X-Content-Type-Options
Header always set X-Content-Type-Options "nosniff"
Header onsuccess unset X-Frame-Options
Header always set X-Frame-Options "SAMEORIGIN"
Header onsuccess unset X-Permitted-Cross-Domain-Policies
Header always set X-Permitted-Cross-Domain-Policies "none"
Header onsuccess unset X-Robots-Tag
Header always set X-Robots-Tag "noindex, nofollow"
SetEnv modHeadersAvailable true
</IfModule>
# Add cache control for static resources
<FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|webp|ico|wasm|tflite)$">
<If "%{QUERY_STRING} =~ /(^|&)v=/">
Header set Cache-Control "max-age=15778463, immutable"
</If>
<Else>
Header set Cache-Control "max-age=15778463"
</Else>
</FilesMatch>
# Let browsers cache OTF and WOFF files for a week
<FilesMatch "\.(otf|woff2?)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# Let browsers cache OTF and WOFF files for a week
<FilesMatch "\.(otf|woff2?)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
</IfModule>
<IfModule mod_php.c>
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
AddType application/wasm wasm
AddEncoding gzip svgz
# Serve ESM javascript files (.mjs) with correct mime type
AddType text/javascript js mjs
AddType image/svg+xml svg svgz
AddType application/wasm wasm
AddEncoding gzip svgz
# Serve ESM javascript files (.mjs) with correct mime type
AddType text/javascript js mjs
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
DirectoryIndex index.php index.html
</IfModule>
<IfModule pagespeed_module>
ModPagespeed Off
ModPagespeed Off
</IfModule>
#############
#### Rewrites
#############
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
RewriteRule ^ocm-provider/?$ index.php [QSA,L]
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
RewriteEngine on
##
## Rule: Workaround for WebDAV with apache+php-cgi
##
## Context:
## - Sets the environment variable `HTTP_AUTHORIZATION` to the value of the `Authorization` request header
## - Always executed before and along with other rules (no `L` used)
## - XXX: *May* be replaced with an equivalent SetEnvIf in theory
## - XXX: SetEnvIf approach is already in use above for mod_proxy_cgi / mod_lsapi / mod_fcgid
##
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
##
## Rule: Workaround for WebDAV with MS DavClnt
##
## Context:
## - DavClnt attempts an OPTIONS request against `/` instead of the specified endpoint
## - Redirects the client to the endpoint rather than the login page (which confuses DavClnt)
##
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
##
## Rule: Map the RFC 8615 / RFC 6764 compliant well-known URI for CardDAV to our Remote DAV endpoint
##
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
##
## Rule: Map the RFC 8615 / RFC 6764 compliant well-known URI for CalDAV to our Remote DAV endpoint
##
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
##
## Rule: Map /remote* --> /remote.php* including the query string
##
## Context:
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Is this even used anymore? Seems a relic from <NC12
##
RewriteRule ^remote/(.*) remote.php [QSA,L]
##
## Rule: Prevent access to non-public files
##
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
##
## Rule: Maps most RFC 8615 compliant well-known URIs to our main frontend controller (/index.php) by default
##
## Context:
## - Intentionally excludes URIs used for HTTPS certificate verifications
## - RFC 8555 / ACME HTTP Challenges (acme-challenge)
## - File-based Validations (pki-validation)
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Sometimes we are using `/index.php` and other times `index.php` as our replacement URI; this may be incorrect
##
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
##
## Rule: Map the ocm-provider handling to our main frontend controller (/index.php)
##
## Context:
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
## - XXX: Sometimes we are using `/index.php` and other times `index.php` as our replacement URI; this may be incorrect
##
RewriteRule ^ocm-provider/?$ index.php [QSA,L]
##
## Rule: Prevent access to more non-public files
##
## Context:
## - XXX It may make sense to merge some of these with the others (i.e. the ones that don't need to be last)
##
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
# Clients like xDavv5 on Android, or Cyberduck, use chunked requests.
@@ -105,16 +183,18 @@
# Here are more information about the issue:
# - https://docs.cyberduck.io/mountainduck/issues/fastcgi/
# - https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#troubleshooting-webdav
<IfModule mod_setenvif.c>
SetEnvIfNoCase Transfer-Encoding "chunked" proxy-sendcl=1
SetEnvIfNoCase Transfer-Encoding "chunked" proxy-sendcl=1
</IfModule>
# Apache disabled the sending of the server-side content-length header
# in their 2.4.59 patch updated which breaks some use-cases in Nextcloud.
# Setting ap_trust_cgilike_cl allows to bring back the usual behaviour.
# See https://bz.apache.org/bugzilla/show_bug.cgi?id=68973
<IfModule mod_env.c>
SetEnv ap_trust_cgilike_cl
SetEnv ap_trust_cgilike_cl
</IfModule>
AddDefaultCharset utf-8

View File

@@ -400,7 +400,7 @@ SPDX-FileCopyrightText = "2019 Fabian Wiktor <https://www.pexels.com/photo/green
SPDX-License-Identifier = "CC0-1.0"
[[annotations]]
path = ["openapi.json", ".envrc", "flake.nix", "flake.lock", "build/eslint-baseline.json"]
path = ["openapi.json", ".envrc", "flake.nix", "flake.lock", "build/eslint-baseline.json", "build/eslint-baseline-legacy.json"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2025 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"

1
__mocks__ Symbolic link
View File

@@ -0,0 +1 @@
build/frontend/__mocks__

1
__tests__ Symbolic link
View File

@@ -0,0 +1 @@
build/frontend/__tests__

View File

@@ -17,7 +17,7 @@ OC.L10N.register(
"Delete comment" : "Smazat komentář",
"Cancel edit" : "Zrušit úpravu",
"New comment" : "Nový komentář",
"Write a comment …" : "Napsat komentář …",
"Write a comment …" : "Napsat komentář …",
"Post comment" : "Odeslat komentář",
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
@@ -32,6 +32,6 @@ OC.L10N.register(
"Comment deleted" : "Komentář smazán",
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
"Write a comment …" : "Napsat komentář…"
"Write a comment …" : "Napsat komentář …"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");

View File

@@ -15,7 +15,7 @@
"Delete comment" : "Smazat komentář",
"Cancel edit" : "Zrušit úpravu",
"New comment" : "Nový komentář",
"Write a comment …" : "Napsat komentář …",
"Write a comment …" : "Napsat komentář …",
"Post comment" : "Odeslat komentář",
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
@@ -30,6 +30,6 @@
"Comment deleted" : "Komentář smazán",
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
"Write a comment …" : "Napsat komentář…"
"Write a comment …" : "Napsat komentář …"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}

View File

@@ -72,7 +72,7 @@
:contenteditable="!loading"
:label="editor ? t('comments', 'New comment') : t('comments', 'Edit comment')"
:placeholder="t('comments', 'Write a comment ')"
:value="localMessage"
:model-value="localMessage"
:user-data="userData"
aria-describedby="tab-comments__editor-description"
@update:value="updateLocalMessage"
@@ -103,6 +103,7 @@
:class="{ 'comment__message--expanded': expanded }"
:text="richContent.message"
:arguments="richContent.mentions"
use-markdown
@click.native="onExpand" />
</div>
</component>
@@ -376,13 +377,19 @@ $comment-padding: 10px;
&__message {
white-space: pre-wrap;
word-break: normal;
max-height: 70px;
overflow: hidden;
max-height: 200px;
overflow: auto;
scrollbar-gutter: stable;
scrollbar-width: thin;
margin-top: -6px;
&--expanded {
max-height: none;
overflow: visible;
}
:deep(img) {
max-width: 100%;
height: auto;
}
}
}

View File

@@ -5,14 +5,11 @@
import { getCSPNonce } from '@nextcloud/auth'
import { t } from '@nextcloud/l10n'
import VTooltip from '@nextcloud/vue/directives/Tooltip'
import Vue from 'vue'
import DashboardApp from './DashboardApp.vue'
__webpack_nonce__ = getCSPNonce()
Vue.directive('Tooltip', VTooltip)
Vue.prototype.t = t
const Dashboard = Vue.extend(DashboardApp)

View File

@@ -164,7 +164,7 @@ OC.L10N.register(
"Occurring:" : "Opakuje se::",
"Accept" : "Přijmout",
"Decline" : "Odmítnout",
"More options …" : "Další volby…",
"More options …" : "Další volby …",
"More options at %s" : "Další volby viz %s",
"Monday" : "pondělí",
"Tuesday" : "úterý",

View File

@@ -162,7 +162,7 @@
"Occurring:" : "Opakuje se::",
"Accept" : "Přijmout",
"Decline" : "Odmítnout",
"More options …" : "Další volby…",
"More options …" : "Další volby …",
"More options at %s" : "Další volby viz %s",
"Monday" : "pondělí",
"Tuesday" : "úterý",

View File

@@ -167,7 +167,7 @@ class IMipPlugin extends SabreIMipPlugin {
$iTipMessage->scheduleStatus = '1.0;We got the message, but it\'s not significant enough to warrant an email';
return;
}
$this->imipService->setL10n($attendee);
$this->imipService->setL10nFromAttendee($attendee);
// Build the sender name.
// Due to a bug in sabre, the senderName property for an iTIP message can actually also be a VObject Property

View File

@@ -14,6 +14,7 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IL10N;
use OCP\IUserManager;
use OCP\L10N\IFactory as L10NFactory;
use OCP\Mail\IEMailTemplate;
use OCP\Security\ISecureRandom;
@@ -44,6 +45,7 @@ class IMipService {
private ISecureRandom $random,
private L10NFactory $l10nFactory,
private ITimeFactory $timeFactory,
private readonly IUserManager $userManager,
) {
$language = $this->l10nFactory->findGenericLanguage();
$locale = $this->l10nFactory->findLocale($language);
@@ -870,18 +872,35 @@ class IMipService {
}
/**
* @param Property|null $attendee
* @param Property $attendee
*/
public function setL10n(?Property $attendee = null) {
if ($attendee === null) {
return;
public function setL10nFromAttendee(Property $attendee) {
$language = null;
$locale = null;
// check if the attendee is a system user
$userAddress = $attendee->getValue();
if (str_starts_with($userAddress, 'mailto:')) {
$userAddress = substr($userAddress, 7);
}
$lang = $attendee->offsetGet('LANGUAGE');
if ($lang instanceof Parameter) {
$lang = $lang->getValue();
$this->l10n = $this->l10nFactory->get('dav', $lang);
$users = $this->userManager->getByEmail($userAddress);
if ($users !== []) {
$user = array_shift($users);
$language = $this->config->getUserValue($user->getUID(), 'core', 'lang', null);
$locale = $this->config->getUserValue($user->getUID(), 'core', 'locale', null);
}
// fallback to attendee LANGUAGE parameter if language not set
if ($language === null && isset($attendee['LANGUAGE']) && $attendee['LANGUAGE'] instanceof Parameter) {
$language = $attendee['LANGUAGE']->getValue();
}
// fallback to system language if language not set
if ($language === null) {
$language = $this->l10nFactory->findGenericLanguage();
}
// fallback to system locale if locale not set
if ($locale === null) {
$locale = $this->l10nFactory->findLocale($language);
}
$this->l10n = $this->l10nFactory->get('dav', $language, $locale);
}
/**

View File

@@ -205,7 +205,7 @@ export default {
/**
* Debounce getSuggestions
*
* @param {...*} args the arguments
* @param {[string]} args - The arguments
*/
debounceGetSuggestions: debounce(function(...args) {
this.getSuggestions(...args)

View File

@@ -6,7 +6,7 @@
<template>
<div class="example-contact-settings">
<NcCheckboxRadioSwitch
:checked="enableDefaultContact"
:model-value="enableDefaultContact"
type="switch"
@update:model-value="updateEnableDefaultContact">
{{ t('dav', "Add example contact to user's address book when they first log in") }}

View File

@@ -6,7 +6,7 @@
<template>
<div class="example-event-settings">
<NcCheckboxRadioSwitch
:checked="createExampleEvent"
:model-value="createExampleEvent"
:disabled="savingConfig"
type="switch"
@update:model-value="updateCreateExampleEvent">

View File

@@ -20,6 +20,7 @@ use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\Mail\IMailer;
@@ -55,6 +56,7 @@ class IMipPluginCharsetTest extends TestCase {
private IUrlGenerator&MockObject $urlGenerator;
private IUserSession&MockObject $userSession;
private LoggerInterface $logger;
private IUserManager&MockObject $userManager;
// Services
private EventComparisonService $eventComparisonService;
@@ -86,6 +88,8 @@ class IMipPluginCharsetTest extends TestCase {
->willReturn('en_US');
$this->l10nFactory->method('get')
->willReturn($l10n);
$this->userManager = $this->createMock(IUserManager::class);
$this->userManager->method('getByEmail')->willReturn([]);
$this->imipService = new IMipService(
$this->urlGenerator,
$this->config,
@@ -93,6 +97,7 @@ class IMipPluginCharsetTest extends TestCase {
$this->random,
$this->l10nFactory,
$this->timeFactory,
$this->userManager
);
// EventComparisonService

View File

@@ -16,6 +16,7 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IL10N;
use OCP\IUserManager;
use OCP\L10N\IFactory;
use OCP\Security\ISecureRandom;
use PHPUnit\Framework\MockObject\MockObject;
@@ -32,6 +33,7 @@ class IMipServiceTest extends TestCase {
private IL10N&MockObject $l10n;
private ITimeFactory&MockObject $timeFactory;
private IMipService $service;
private IUserManager&MockObject $userManager;
private VCalendar $vCalendar1a;
@@ -51,6 +53,7 @@ class IMipServiceTest extends TestCase {
$this->l10nFactory = $this->createMock(IFactory::class);
$this->l10n = $this->createMock(IL10N::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->l10nFactory->expects(self::once())
->method('findGenericLanguage')
->willReturn('en');
@@ -64,7 +67,8 @@ class IMipServiceTest extends TestCase {
$this->db,
$this->random,
$this->l10nFactory,
$this->timeFactory
$this->timeFactory,
$this->userManager
);
// construct calendar with a 1 hour event and same start/end time zones

View File

@@ -28,6 +28,7 @@ OC.L10N.register(
"Bad Signature" : "Má Assinatura",
"Missing Signature" : "Assinatura em Falta",
"one-time password for server-side-encryption" : "palavra-passe de utilização única para a encriptação do lado do servidor",
"This app provides the (default) cryptography implementation for Nextcloud's Server-side Encryption (SSE) feature.\n\n\t\t\t**Encryption Details**\n\t\t\t* **Cipher Mode:** AES-256-CTR (default)\n\t\t\t* **Authentication:** HMAC-SHA256\n\n\t\t\t**Important Warnings**\n\t\t\t* **DANGER:** Do not disable this application until all files have been decrypted (`occ encryption:decrypt-all`).\n\t\t\t* **WARNING**: Reverting to non-encrypted file storage after activation requires command-line access. The action is permanent via the Web UI.\"\n\n\t\t\t**Notes for Existing Files**\n\t\t\t* By default, enabling SSE does not encrypt existing files; only new files will be encrypted.\n\t\t\t* To encrypt all existing files, use the command `occ encryption:encrypt-all`.\n\n\t\t\t**Before You Begin**\n\t\t\t* **Read the Documentation:** Before you enable SSE, encrypt existing files, or disable SSE, it is critical to \n\t\t\t\tread the documentation to understand implications and the appropriate procedures to avoid data loss." : "Esta aplicação fornece a implementação de encriptação (padrão) para a funcionalidade de Encriptação do Lado do Servidor (SSE) do Nextcloud.\n\n\t\t\t**Detalhes da Encriptação**\n\t\t\t* **Modo de Encriptação:** AES-256-CTR (padrão)\n\t\t\t* **Autenticação:** HMAC-SHA256\n\t\t\t**Avisos Importantes**\n\t\t\t* **PERIGO:** Não desative esta aplicação até que todos os ficheiros tenham sido desencriptados (`occ encryption:decrypt-all`).\n\t\t\t* **AVISO**: Reverter para o armazenamento de ficheiros não encriptados após a ativação requer acesso à linha de comandos. A ação é permanente através da interface web.\n\n\t\t\t**Observações para Ficheiros Existentes**\n\t\t\t* Por predefinição, a ativação do SSE não encripta os ficheiros existentes; apenas os novos ficheiros serão encriptados.\n\t\t\t* Para encriptar todos os ficheiros existentes, utilize o comando `occ encryption:encrypt-all`.\n\t\t\t**Antes de Começar**\n\t\t\t* **Leia a Documentação:** Antes de ativar o SSE, encriptar os ficheiros existentes ou desativar o SSE, é fundamental \n\t\t\t\tler a documentação para compreender as implicações e os procedimentos adequados para evitar a perda de dados.",
"Default encryption module" : "Módulo de cifra padrão",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicação de encriptação está ativada mas as suas chaves não foram inicializadas, termine a sessão e inicie sessão novamente",
"Encrypt the home storage" : "Encriptar o armazenamento do início",

View File

@@ -26,6 +26,7 @@
"Bad Signature" : "Má Assinatura",
"Missing Signature" : "Assinatura em Falta",
"one-time password for server-side-encryption" : "palavra-passe de utilização única para a encriptação do lado do servidor",
"This app provides the (default) cryptography implementation for Nextcloud's Server-side Encryption (SSE) feature.\n\n\t\t\t**Encryption Details**\n\t\t\t* **Cipher Mode:** AES-256-CTR (default)\n\t\t\t* **Authentication:** HMAC-SHA256\n\n\t\t\t**Important Warnings**\n\t\t\t* **DANGER:** Do not disable this application until all files have been decrypted (`occ encryption:decrypt-all`).\n\t\t\t* **WARNING**: Reverting to non-encrypted file storage after activation requires command-line access. The action is permanent via the Web UI.\"\n\n\t\t\t**Notes for Existing Files**\n\t\t\t* By default, enabling SSE does not encrypt existing files; only new files will be encrypted.\n\t\t\t* To encrypt all existing files, use the command `occ encryption:encrypt-all`.\n\n\t\t\t**Before You Begin**\n\t\t\t* **Read the Documentation:** Before you enable SSE, encrypt existing files, or disable SSE, it is critical to \n\t\t\t\tread the documentation to understand implications and the appropriate procedures to avoid data loss." : "Esta aplicação fornece a implementação de encriptação (padrão) para a funcionalidade de Encriptação do Lado do Servidor (SSE) do Nextcloud.\n\n\t\t\t**Detalhes da Encriptação**\n\t\t\t* **Modo de Encriptação:** AES-256-CTR (padrão)\n\t\t\t* **Autenticação:** HMAC-SHA256\n\t\t\t**Avisos Importantes**\n\t\t\t* **PERIGO:** Não desative esta aplicação até que todos os ficheiros tenham sido desencriptados (`occ encryption:decrypt-all`).\n\t\t\t* **AVISO**: Reverter para o armazenamento de ficheiros não encriptados após a ativação requer acesso à linha de comandos. A ação é permanente através da interface web.\n\n\t\t\t**Observações para Ficheiros Existentes**\n\t\t\t* Por predefinição, a ativação do SSE não encripta os ficheiros existentes; apenas os novos ficheiros serão encriptados.\n\t\t\t* Para encriptar todos os ficheiros existentes, utilize o comando `occ encryption:encrypt-all`.\n\t\t\t**Antes de Começar**\n\t\t\t* **Leia a Documentação:** Antes de ativar o SSE, encriptar os ficheiros existentes ou desativar o SSE, é fundamental \n\t\t\t\tler a documentação para compreender as implicações e os procedimentos adequados para evitar a perda de dados.",
"Default encryption module" : "Módulo de cifra padrão",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicação de encriptação está ativada mas as suas chaves não foram inicializadas, termine a sessão e inicie sessão novamente",
"Encrypt the home storage" : "Encriptar o armazenamento do início",

View File

@@ -278,7 +278,7 @@ class EncryptAll {
$this->writePasswordsToFile($newPasswords);
$this->output->writeln('');
$question = new ConfirmationQuestion('Do you want to send the passwords directly to the users by mail? (y/n) ', false);
$question = new ConfirmationQuestion('Do you want to send the passwords directly to the users by mail? (y/n) ', true);
if ($this->questionHelper->ask($this->input, $this->output, $question)) {
$this->sendPasswordsByMail();
}

View File

@@ -8,32 +8,32 @@
:description="t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')"
:doc-url="sharingFederatedDocUrl">
<NcCheckboxRadioSwitch
v-model="outgoingServer2serverShareEnabled"
type="switch"
:checked.sync="outgoingServer2serverShareEnabled"
@update:checked="update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)">
@update:modelValue="update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)">
{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch
v-model="incomingServer2serverShareEnabled"
type="switch"
:checked.sync="incomingServer2serverShareEnabled"
@update:checked="update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)">
@update:modelValue="update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)">
{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch
v-if="federatedGroupSharingSupported"
v-model="outgoingServer2serverGroupShareEnabled"
type="switch"
:checked.sync="outgoingServer2serverGroupShareEnabled"
@update:checked="update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)">
@update:modelValue="update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)">
{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch
v-if="federatedGroupSharingSupported"
v-model="incomingServer2serverGroupShareEnabled"
type="switch"
:checked.sync="incomingServer2serverGroupShareEnabled"
@update:checked="update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)">
@update:modelValue="update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)">
{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}
</NcCheckboxRadioSwitch>
@@ -42,17 +42,17 @@
<NcCheckboxRadioSwitch
type="switch"
:checked="lookupServerEnabled"
:model-value="lookupServerEnabled"
disabled
@update:checked="showLookupServerConfirmation">
@update:modelValue="showLookupServerConfirmation">
{{ t('federatedfilesharing', 'Search global and public address book for people') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch
type="switch"
:checked="lookupServerUploadEnabled"
:model-value="lookupServerUploadEnabled"
disabled
@update:checked="showLookupServerUploadConfirmation">
@update:modelValue="showLookupServerUploadConfirmation">
{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}
</NcCheckboxRadioSwitch>
</fieldset>
@@ -63,9 +63,9 @@
{{ t('federatedfilesharing', 'Trusted federation') }}
</h3>
<NcCheckboxRadioSwitch
v-model="federatedTrustedShareAutoAccept"
type="switch"
:checked.sync="federatedTrustedShareAutoAccept"
@update:checked="update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)">
@update:modelValue="update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)">
{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}
</NcCheckboxRadioSwitch>
</div>

View File

@@ -12,7 +12,7 @@
class="federated-cloud__cloud-id"
readonly
:label="t('federatedfilesharing', 'Your Federated Cloud ID')"
:value="cloudId"
:model-value="cloudId"
:success="isCopied"
show-trailing-button
:trailing-button-label="copyLinkTooltip"

View File

@@ -53,9 +53,9 @@ const buttons = computed(() => [
</p>
<NcPasswordField
v-if="passwordRequired"
v-model="password"
class="remote-share-dialog__password"
:label="t('federatedfilesharing', 'Remote share password')"
:value.sync="password" />
:label="t('federatedfilesharing', 'Remote share password')" />
</NcDialog>
</template>

View File

@@ -160,8 +160,8 @@ OC.L10N.register(
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.",
"File not found" : "Soubor nenalezen",
"_{count} selected_::_{count} selected_" : ["vybráno {count}","vybráno {count}","vybráno {count}","vybráno {count}"],
"Search everywhere …" : "Hledat všude …",
"Search here …" : "Hledat zde …",
"Search everywhere …" : "Hledat všude …",
"Search here …" : "Hledat zde …",
"Search scope options" : "Předvolby rozsahu prohledávaného",
"Search here" : "Hledat zde",
"{usedQuotaByte} used" : "{usedQuotaByte} využito",
@@ -180,7 +180,7 @@ OC.L10N.register(
"Failed to refresh filename sanitization status." : "Nepodařilo se znovu načíst stav sanitizace názvů souborů.",
"Filename sanitization in progress." : "Probíhá sanitizace názvu souboru.",
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "V tuto chvíli je už zpracováno {processedUsers} z {totalUsers} účtů.",
"Preparing …" : "Příprava …",
"Preparing …" : "Příprava …",
"Refresh" : "Znovu načíst",
"All files have been santized for Windows filename support." : "Všechny soubory byly sanitizovány ohledně podpory názvů souborů ve Windows.",
"Some files could not be sanitized, please check your logs." : "Některé soubory nebylo možné sanitizovat podívejte se do záznamu událostí.",
@@ -195,7 +195,7 @@ OC.L10N.register(
"Sanitize filenames" : "Sanitizovat názvy souborů",
"(starting)" : "(spouští se)",
"Fill template fields" : "Vyplňte kolonky šablony",
"Submitting fields …" : "Odesílání kolonek …",
"Submitting fields …" : "Odesílání kolonek …",
"Submit" : "Odeslat",
"Choose a file or folder to transfer" : "Zvolte soubor nebo složku k převedení",
"Transfer" : "Převést",
@@ -264,8 +264,8 @@ OC.L10N.register(
"Create a new file with the selected template" : "Vytvořit nový soubor ze zvolené šablony",
"Creating file" : "Vytváření souboru",
"Save as {displayName}" : "Uložit jako {displayName}",
"Save as …" : "Uložit jako …",
"Converting files …" : "Převádění souborů …",
"Save as …" : "Uložit jako …",
"Converting files …" : "Převádění souborů …",
"Failed to convert files: {message}" : "Nepodařilo se převést soubory: {message}",
"All files failed to be converted" : "Žádný ze souborů se nepodařilo převést",
"One file could not be converted: {message}" : "Jeden soubor nebylo možné převést: {message}",
@@ -273,7 +273,7 @@ OC.L10N.register(
"_%n file converted_::_%n files converted_" : ["%n soubor převeden","%n soubory převedeny","%n souborů převedeno","%n soubory převedeny"],
"Files converted" : "Soubory převedeny",
"Failed to convert files" : "Nepodařilo se převést soubory",
"Converting file …" : "Převádění souboru …",
"Converting file …" : "Převádění souboru …",
"File successfully converted" : "Soubor úspěšně převeden",
"Failed to convert file: {message}" : "Nepodařilo se převést soubor: {message}",
"Failed to convert file" : "Nepodařilo se převést soubor",
@@ -296,8 +296,8 @@ OC.L10N.register(
"The requested file is not available." : "Požadovaný soubor není k dispozici.",
"The requested files are not available." : "Požadované soubory nejsou k dispozici.",
"Add or remove favorite" : "Přidat nebo odebrat oblíbené",
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
"Destination is not a folder" : "Cíl není složka",
"This file/folder is already in that directory" : "V oné složce se už daný soubor/složka nachází",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Není možné přesunout soubor/složku do sebe samé nebo do své vlastní podložky",
@@ -399,9 +399,9 @@ OC.L10N.register(
"\"{displayName}\" failed on some elements" : "„{displayName}“ se pro některé prvky nezdařilo",
"\"{displayName}\" batch action executed successfully" : "Hromadná akce „{displayName}“ úspěšně vykonána",
"\"{displayName}\" action failed" : "akce „{displayName}“ se nezdařila",
"Submitting fields …" : "Odesílání kolonek…",
"Submitting fields …" : "Odesílání kolonek …",
"\"{displayName}\" action executed successfully" : "akce „{displayName}“ úspěšně vykonána",
"Filter file names …" : "Filtrovat názvy souborů…",
"Filter file names …" : "Filtrovat názvy souborů …",
"Clipboard is not available" : "Schránka není k dispozici",
"WebDAV URL copied to clipboard" : "WebDAV URL zkopírována do schránky",
"Enable the grid view" : "Zapnout zobrazení v mřížce",
@@ -429,9 +429,9 @@ OC.L10N.register(
"Navigate to the file on the right (in grid mode)" : "Přejít na soubor vpravo (v režimu mřížky)",
"Toggle the grid view" : "Vyp/zap. zobrazení v mřížce",
"Open the sidebar for a file" : "Otevřít postranní panel pro soubor",
"Save as …" : "Uložit jako…",
"Converting files …" : "Převádění souborů…",
"Converting file …" : "Převádění souboru…",
"Save as …" : "Uložit jako …",
"Converting files …" : "Převádění souborů …",
"Converting file …" : "Převádění souboru …",
"Deletion cancelled" : "Mazání zrušeno",
"Edit locally" : "Upravit lokálně",
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
@@ -444,8 +444,8 @@ OC.L10N.register(
"New folder creation cancelled" : "Vytváření nové složky zrušeno",
"This directory is unavailable, please check the logs or contact the administrator" : "Tento adresář není dostupný, zkontrolujte záznamy událostí nebo se obraťte na správce",
"All folders" : "Všechny složky",
"Search everywhere …" : "Hledat všude…",
"Search here …" : "Hledat zde…",
"Search everywhere …" : "Hledat všude …",
"Search here …" : "Hledat zde …",
"Preparing …" : "Příprava …"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");

View File

@@ -158,8 +158,8 @@
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.",
"File not found" : "Soubor nenalezen",
"_{count} selected_::_{count} selected_" : ["vybráno {count}","vybráno {count}","vybráno {count}","vybráno {count}"],
"Search everywhere …" : "Hledat všude …",
"Search here …" : "Hledat zde …",
"Search everywhere …" : "Hledat všude …",
"Search here …" : "Hledat zde …",
"Search scope options" : "Předvolby rozsahu prohledávaného",
"Search here" : "Hledat zde",
"{usedQuotaByte} used" : "{usedQuotaByte} využito",
@@ -178,7 +178,7 @@
"Failed to refresh filename sanitization status." : "Nepodařilo se znovu načíst stav sanitizace názvů souborů.",
"Filename sanitization in progress." : "Probíhá sanitizace názvu souboru.",
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "V tuto chvíli je už zpracováno {processedUsers} z {totalUsers} účtů.",
"Preparing …" : "Příprava …",
"Preparing …" : "Příprava …",
"Refresh" : "Znovu načíst",
"All files have been santized for Windows filename support." : "Všechny soubory byly sanitizovány ohledně podpory názvů souborů ve Windows.",
"Some files could not be sanitized, please check your logs." : "Některé soubory nebylo možné sanitizovat podívejte se do záznamu událostí.",
@@ -193,7 +193,7 @@
"Sanitize filenames" : "Sanitizovat názvy souborů",
"(starting)" : "(spouští se)",
"Fill template fields" : "Vyplňte kolonky šablony",
"Submitting fields …" : "Odesílání kolonek …",
"Submitting fields …" : "Odesílání kolonek …",
"Submit" : "Odeslat",
"Choose a file or folder to transfer" : "Zvolte soubor nebo složku k převedení",
"Transfer" : "Převést",
@@ -262,8 +262,8 @@
"Create a new file with the selected template" : "Vytvořit nový soubor ze zvolené šablony",
"Creating file" : "Vytváření souboru",
"Save as {displayName}" : "Uložit jako {displayName}",
"Save as …" : "Uložit jako …",
"Converting files …" : "Převádění souborů …",
"Save as …" : "Uložit jako …",
"Converting files …" : "Převádění souborů …",
"Failed to convert files: {message}" : "Nepodařilo se převést soubory: {message}",
"All files failed to be converted" : "Žádný ze souborů se nepodařilo převést",
"One file could not be converted: {message}" : "Jeden soubor nebylo možné převést: {message}",
@@ -271,7 +271,7 @@
"_%n file converted_::_%n files converted_" : ["%n soubor převeden","%n soubory převedeny","%n souborů převedeno","%n soubory převedeny"],
"Files converted" : "Soubory převedeny",
"Failed to convert files" : "Nepodařilo se převést soubory",
"Converting file …" : "Převádění souboru …",
"Converting file …" : "Převádění souboru …",
"File successfully converted" : "Soubor úspěšně převeden",
"Failed to convert file: {message}" : "Nepodařilo se převést soubor: {message}",
"Failed to convert file" : "Nepodařilo se převést soubor",
@@ -294,8 +294,8 @@
"The requested file is not available." : "Požadovaný soubor není k dispozici.",
"The requested files are not available." : "Požadované soubory nejsou k dispozici.",
"Add or remove favorite" : "Přidat nebo odebrat oblíbené",
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
"Destination is not a folder" : "Cíl není složka",
"This file/folder is already in that directory" : "V oné složce se už daný soubor/složka nachází",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Není možné přesunout soubor/složku do sebe samé nebo do své vlastní podložky",
@@ -397,9 +397,9 @@
"\"{displayName}\" failed on some elements" : "„{displayName}“ se pro některé prvky nezdařilo",
"\"{displayName}\" batch action executed successfully" : "Hromadná akce „{displayName}“ úspěšně vykonána",
"\"{displayName}\" action failed" : "akce „{displayName}“ se nezdařila",
"Submitting fields …" : "Odesílání kolonek…",
"Submitting fields …" : "Odesílání kolonek …",
"\"{displayName}\" action executed successfully" : "akce „{displayName}“ úspěšně vykonána",
"Filter file names …" : "Filtrovat názvy souborů…",
"Filter file names …" : "Filtrovat názvy souborů …",
"Clipboard is not available" : "Schránka není k dispozici",
"WebDAV URL copied to clipboard" : "WebDAV URL zkopírována do schránky",
"Enable the grid view" : "Zapnout zobrazení v mřížce",
@@ -427,9 +427,9 @@
"Navigate to the file on the right (in grid mode)" : "Přejít na soubor vpravo (v režimu mřížky)",
"Toggle the grid view" : "Vyp/zap. zobrazení v mřížce",
"Open the sidebar for a file" : "Otevřít postranní panel pro soubor",
"Save as …" : "Uložit jako…",
"Converting files …" : "Převádění souborů…",
"Converting file …" : "Převádění souboru…",
"Save as …" : "Uložit jako …",
"Converting files …" : "Převádění souborů …",
"Converting file …" : "Převádění souboru …",
"Deletion cancelled" : "Mazání zrušeno",
"Edit locally" : "Upravit lokálně",
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
@@ -442,8 +442,8 @@
"New folder creation cancelled" : "Vytváření nové složky zrušeno",
"This directory is unavailable, please check the logs or contact the administrator" : "Tento adresář není dostupný, zkontrolujte záznamy událostí nebo se obraťte na správce",
"All folders" : "Všechny složky",
"Search everywhere …" : "Hledat všude…",
"Search here …" : "Hledat zde…",
"Search everywhere …" : "Hledat všude …",
"Search here …" : "Hledat zde …",
"Preparing …" : "Příprava …"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}

View File

@@ -108,16 +108,43 @@ OC.L10N.register(
"Type" : "Tipo",
"Active filters" : "Filtros ativos",
"Remove filter" : "Remover filtro",
"Appearance" : "Aspeto",
"Show hidden files" : "Mostrar ficheiros ocultos",
"Show file type column" : "Mostrar coluna de tipo de ficheiro",
"Show file extensions" : "Mostrar extensões de ficheiro",
"Crop image previews" : "Recortar pré-visualizações de imagens",
"General" : "Geral",
"Sort favorites first" : "Ordenar por favoritos primeiro",
"Sort folders before files" : "Ordenar as pastas antes dos ficheiros.",
"Enable folder tree view" : "Ativar visualização de pastas em árvore",
"Default view" : "Vista padrão",
"All files" : "Todos os ficheiros",
"Personal files" : "Ficheiros pessoais",
"Additional settings" : "Definições adicionais",
"Actions" : "Ações",
"File actions" : "Ações sobre ficheiros",
"Selection" : "Seleção",
"Select all files" : "Selecionar todos os ficheiros",
"Deselect all" : "Desselecionar tudo",
"Select or deselect" : "Selecionar ou desselecionar",
"Select a range" : "Selecionar um intervalo",
"Navigation" : "Navegação",
"Go to parent folder" : "Ir para a pasta anterior",
"Go to file above" : "Ir para o ficheiro acima",
"Go to file below" : "Ir para o ficheiro abaixo",
"Go left in grid" : "Ir para a esquerda na grelha",
"Go right in grid" : "Ir para a direita na grelha",
"View" : "Ver",
"Toggle grid view" : "Alternar visualização em grelha",
"Open file sidebar" : "Abrir barra lateral de ficheiro",
"Show those shortcuts" : "Mostrar esses atalhos",
"Warnings" : "Avisos",
"Warn before changing a file extension" : "Avisar antes de alterar uma extensão de ficheiro",
"Warn before deleting a file" : "Avisar antes de eliminar um ficheiro",
"WebDAV URL" : "URL WebDAV",
"Create an app password" : "Criar uma palavra-passe para a aplicação",
"Required for WebDAV authentication because Two-Factor Authentication is enabled for this account." : "Necessário para a autenticação WebDAV porque a autenticação de dois fatores está ativada para esta conta.",
"How to access files using WebDAV" : "Como aceder a ficheiros usando o WebDAV",
"Total rows summary" : "Resumo do total de linhas",
"Toggle selection for all files and folders" : "Alternar a seleção para todos os ficheiros e pastas",
"Name" : "Nome",
@@ -133,6 +160,8 @@ OC.L10N.register(
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Por motivos de desempenho, esta lista não é totalmente processada. Os ficheiros serão processados à medida que navega na lista.",
"File not found" : "Ficheiro não encontrado",
"_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionado","{count} selecionado"],
"Search everywhere …" : "Procure em todo o lado …",
"Search here …" : "Procure aqui …",
"Search scope options" : "Opções do escopo da pesquisa",
"Search here" : "Pesquisar aqui",
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
@@ -150,7 +179,15 @@ OC.L10N.register(
"Failed to start filename sanitization." : "Falha ao iniciar a limpeza do nome do ficheiro.",
"Failed to refresh filename sanitization status." : "Falha ao atualizar o estado da limpeza do nome do ficheiro.",
"Filename sanitization in progress." : "Limpeza do nome do ficheiro em curso.",
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "Atualmente, {processedUsers} das {totalUsers} contas já foram processadas.",
"Preparing …" : "Preparando …",
"Refresh" : "Atualizar",
"All files have been santized for Windows filename support." : "Todos os ficheiros foram tratados para serem compatíveis com os nomes de ficheiro do Windows.",
"Some files could not be sanitized, please check your logs." : "Alguns ficheiros não puderam ser tratados. Por favor verifique os seus registros.",
"Sanitization errors" : "Erros de tratamento",
"Not sanitized filenames" : "Ficheiros não tratados",
"Windows filename support has been enabled." : "O suporte a nomes de ficheiros do Windows foi ativado.",
"While this blocks users from creating new files with unsupported filenames, existing files are not yet renamed and thus still may break sync on Windows." : "Embora isto impeça os utilizadores de criar novos ficheiros com nomes não suportados, os ficheiros existentes ainda não foram renomeados e, portanto, ainda podem interromper a sincronização no Windows.",
"Fill template fields" : "Preencher campos do modelo",
"Submit" : "Submeter",
"Choose a file or folder to transfer" : "Escolher um ficheiro ou pasta para transferir",
@@ -194,6 +231,7 @@ OC.L10N.register(
"Delete folder" : "Apagar pasta",
"Cancel" : "Cancelar",
"Download" : "Transferir",
"Add or remove favorite" : "Adicionar ou remover favorito",
"Copy to {target}" : "Copiar para {target}",
"Copy" : "Copiar",
"Move to {target}" : "Mover para {target}",
@@ -221,6 +259,7 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
"No favorites yet" : "Sem favoritos",
"Files and folders you mark as favorite will show up here" : "Os ficheiros e pastas que marcou como favoritos serão mostrados aqui",
"Folder tree" : "Pastas em árvore",
"Recent" : "Recentes",
"Search" : "Pesquisa sobre",
"No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
@@ -233,9 +272,13 @@ OC.L10N.register(
"\"{displayName}\" batch action executed successfully" : "Ação de lote “{displayName}” executada com sucesso",
"\"{displayName}\" action failed" : "\"{displayName}\" a ação falhou",
"\"{displayName}\" action executed successfully" : "\"{displayName}\" ação executada com sucesso ",
"Enable folder tree" : "Ativar pastas em árvore",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar para área de transferência",
"Keyboard shortcuts" : "Atalhos de teclado",
"Manage tags for a file" : "Gerir etiquetas para um ficheiro",
"Select or deselect a file" : "Selecionar ou desselecionar um ficheiro",
"Select a range of files" : "Selecionar um intervalo de ficheiros",
"Edit locally" : "Editar localmente",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador",
"Search everywhere …" : "Pesquisar em todo o lado...",

View File

@@ -106,16 +106,43 @@
"Type" : "Tipo",
"Active filters" : "Filtros ativos",
"Remove filter" : "Remover filtro",
"Appearance" : "Aspeto",
"Show hidden files" : "Mostrar ficheiros ocultos",
"Show file type column" : "Mostrar coluna de tipo de ficheiro",
"Show file extensions" : "Mostrar extensões de ficheiro",
"Crop image previews" : "Recortar pré-visualizações de imagens",
"General" : "Geral",
"Sort favorites first" : "Ordenar por favoritos primeiro",
"Sort folders before files" : "Ordenar as pastas antes dos ficheiros.",
"Enable folder tree view" : "Ativar visualização de pastas em árvore",
"Default view" : "Vista padrão",
"All files" : "Todos os ficheiros",
"Personal files" : "Ficheiros pessoais",
"Additional settings" : "Definições adicionais",
"Actions" : "Ações",
"File actions" : "Ações sobre ficheiros",
"Selection" : "Seleção",
"Select all files" : "Selecionar todos os ficheiros",
"Deselect all" : "Desselecionar tudo",
"Select or deselect" : "Selecionar ou desselecionar",
"Select a range" : "Selecionar um intervalo",
"Navigation" : "Navegação",
"Go to parent folder" : "Ir para a pasta anterior",
"Go to file above" : "Ir para o ficheiro acima",
"Go to file below" : "Ir para o ficheiro abaixo",
"Go left in grid" : "Ir para a esquerda na grelha",
"Go right in grid" : "Ir para a direita na grelha",
"View" : "Ver",
"Toggle grid view" : "Alternar visualização em grelha",
"Open file sidebar" : "Abrir barra lateral de ficheiro",
"Show those shortcuts" : "Mostrar esses atalhos",
"Warnings" : "Avisos",
"Warn before changing a file extension" : "Avisar antes de alterar uma extensão de ficheiro",
"Warn before deleting a file" : "Avisar antes de eliminar um ficheiro",
"WebDAV URL" : "URL WebDAV",
"Create an app password" : "Criar uma palavra-passe para a aplicação",
"Required for WebDAV authentication because Two-Factor Authentication is enabled for this account." : "Necessário para a autenticação WebDAV porque a autenticação de dois fatores está ativada para esta conta.",
"How to access files using WebDAV" : "Como aceder a ficheiros usando o WebDAV",
"Total rows summary" : "Resumo do total de linhas",
"Toggle selection for all files and folders" : "Alternar a seleção para todos os ficheiros e pastas",
"Name" : "Nome",
@@ -131,6 +158,8 @@
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Por motivos de desempenho, esta lista não é totalmente processada. Os ficheiros serão processados à medida que navega na lista.",
"File not found" : "Ficheiro não encontrado",
"_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionado","{count} selecionado"],
"Search everywhere …" : "Procure em todo o lado …",
"Search here …" : "Procure aqui …",
"Search scope options" : "Opções do escopo da pesquisa",
"Search here" : "Pesquisar aqui",
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
@@ -148,7 +177,15 @@
"Failed to start filename sanitization." : "Falha ao iniciar a limpeza do nome do ficheiro.",
"Failed to refresh filename sanitization status." : "Falha ao atualizar o estado da limpeza do nome do ficheiro.",
"Filename sanitization in progress." : "Limpeza do nome do ficheiro em curso.",
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "Atualmente, {processedUsers} das {totalUsers} contas já foram processadas.",
"Preparing …" : "Preparando …",
"Refresh" : "Atualizar",
"All files have been santized for Windows filename support." : "Todos os ficheiros foram tratados para serem compatíveis com os nomes de ficheiro do Windows.",
"Some files could not be sanitized, please check your logs." : "Alguns ficheiros não puderam ser tratados. Por favor verifique os seus registros.",
"Sanitization errors" : "Erros de tratamento",
"Not sanitized filenames" : "Ficheiros não tratados",
"Windows filename support has been enabled." : "O suporte a nomes de ficheiros do Windows foi ativado.",
"While this blocks users from creating new files with unsupported filenames, existing files are not yet renamed and thus still may break sync on Windows." : "Embora isto impeça os utilizadores de criar novos ficheiros com nomes não suportados, os ficheiros existentes ainda não foram renomeados e, portanto, ainda podem interromper a sincronização no Windows.",
"Fill template fields" : "Preencher campos do modelo",
"Submit" : "Submeter",
"Choose a file or folder to transfer" : "Escolher um ficheiro ou pasta para transferir",
@@ -192,6 +229,7 @@
"Delete folder" : "Apagar pasta",
"Cancel" : "Cancelar",
"Download" : "Transferir",
"Add or remove favorite" : "Adicionar ou remover favorito",
"Copy to {target}" : "Copiar para {target}",
"Copy" : "Copiar",
"Move to {target}" : "Mover para {target}",
@@ -219,6 +257,7 @@
"_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
"No favorites yet" : "Sem favoritos",
"Files and folders you mark as favorite will show up here" : "Os ficheiros e pastas que marcou como favoritos serão mostrados aqui",
"Folder tree" : "Pastas em árvore",
"Recent" : "Recentes",
"Search" : "Pesquisa sobre",
"No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
@@ -231,9 +270,13 @@
"\"{displayName}\" batch action executed successfully" : "Ação de lote “{displayName}” executada com sucesso",
"\"{displayName}\" action failed" : "\"{displayName}\" a ação falhou",
"\"{displayName}\" action executed successfully" : "\"{displayName}\" ação executada com sucesso ",
"Enable folder tree" : "Ativar pastas em árvore",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar para área de transferência",
"Keyboard shortcuts" : "Atalhos de teclado",
"Manage tags for a file" : "Gerir etiquetas para um ficheiro",
"Select or deselect a file" : "Selecionar ou desselecionar um ficheiro",
"Select a range of files" : "Selecionar um intervalo de ficheiros",
"Edit locally" : "Editar localmente",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador",
"Search everywhere …" : "Pesquisar em todo o lado...",

View File

@@ -10,12 +10,13 @@ import IconWeb from '@mdi/svg/svg/web.svg?raw'
import { getCurrentUser } from '@nextcloud/auth'
import axios from '@nextcloud/axios'
import { DialogBuilder, showError } from '@nextcloud/dialogs'
import { FileAction, Permission } from '@nextcloud/files'
import { FileAction } from '@nextcloud/files'
import { translate as t } from '@nextcloud/l10n'
import { encodePath } from '@nextcloud/paths'
import { generateOcsUrl } from '@nextcloud/router'
import { isPublicShare } from '@nextcloud/sharing/public'
import logger from '../logger.ts'
import { isSyncable } from '../utils/permissions.ts'
export const action = new FileAction({
id: 'edit-locally',
@@ -34,7 +35,7 @@ export const action = new FileAction({
return false
}
return (nodes[0].permissions & Permission.UPDATE) !== 0
return isSyncable(nodes[0])
},
async exec(node: Node) {

View File

@@ -10,9 +10,9 @@
<NcCheckboxRadioSwitch
v-else
:aria-label="ariaLabel"
:checked="isSelected"
:model-value="isSelected"
data-cy-files-list-row-checkbox
@update:checked="onSelectionChange" />
@update:modelValue="onSelectionChange" />
</td>
</template>

View File

@@ -13,11 +13,11 @@
@submit.prevent.stop="onRename">
<NcTextField
ref="renameInput"
v-model="newName"
:label="renameLabel"
:autofocus="true"
:minlength="1"
:required="true"
:value.sync="newName"
enterkeyhint="done"
@keyup.esc="stopRenaming" />
</form>

View File

@@ -7,7 +7,10 @@
<th
class="files-list__column files-list__row-checkbox"
@keyup.esc.exact="resetSelection">
<NcCheckboxRadioSwitch v-bind="selectAllBind" data-cy-files-list-selection-checkbox @update:checked="onToggleAll" />
<NcCheckboxRadioSwitch
v-bind="selectAllBind"
data-cy-files-list-selection-checkbox
@update:modelValue="onToggleAll" />
</th>
<!-- Columns display -->

View File

@@ -25,11 +25,11 @@
@submit.prevent="emit('close', localDefaultName)">
<NcTextField
ref="nameInput"
v-model="localDefaultName"
data-cy-files-new-node-dialog-input
:error="validity !== ''"
:helper-text="validity"
:label="label"
:value.sync="localDefaultName" />
:label="label" />
<!-- Hidden file warning -->
<NcNoteCard

View File

@@ -7,9 +7,9 @@
<div class="template-field__checkbox">
<NcCheckboxRadioSwitch
:id="fieldId"
:checked.sync="value"
v-model="value"
type="switch"
@update:checked="input">
@update:modelValue="input">
{{ fieldLabel }}
</NcCheckboxRadioSwitch>
</div>

View File

@@ -11,8 +11,8 @@
<NcTextField
:id="fieldId"
v-model="value"
type="text"
:value.sync="value"
:label="fieldLabel"
:label-outside="true"
:placeholder="field.content"

View File

@@ -19,11 +19,11 @@ describe('Search service', () => {
window.OCP ??= {}
window.OCP.Files ??= {}
window.OCP.Files.Router ??= { params: {}, query: {} }
vi.spyOn(window.OCP.Files.Router, 'params', 'get').mockReturnValue({ view: 'files' })
})
beforeEach(() => {
vi.restoreAllMocks()
vi.resetAllMocks()
vi.spyOn(window.OCP.Files.Router, 'params', 'get').mockReturnValue({ view: 'files' })
setActivePinia(createPinia())
})

View File

@@ -36,3 +36,22 @@ export function isDownloadable(node: Node): boolean {
return true
}
/**
* Check permissions on the node if it can be synced/open locally
*
* @param node The node to check
* @return True if syncable, false otherwise
*/
export function isSyncable(node: Node): boolean {
if (!node.isDavResource) {
return false
}
if ((node.permissions & Permission.UPDATE) === 0) {
return false
}
// Syncable has the same permissions as downloadable for now
return isDownloadable(node)
}

View File

@@ -103,7 +103,7 @@ OC.L10N.register(
"Enter missing credentials" : "Zadejte chybějící přihlašovací údaje",
"Credentials successfully set" : "Přihlašovací údaje úspěšně nastaveny",
"Error while setting credentials: {error}" : "Chyba při nastavování přihlašovacích údajů: {error}",
"Checking storage …" : "Kontrola úložiště …",
"Checking storage …" : "Kontrola úložiště …",
"There was an error with this external storage." : "U tohoto externího úložiště došlo k chybě.",
"We were unable to check the external storage {basename}" : "Nepodařilo se zkontrolovat externí úložiště {basename}",
"Examine this faulty external storage configuration" : "Prozkoumejte nastavení tohoto vadného externího úložiště",
@@ -138,7 +138,7 @@ OC.L10N.register(
"Delete storage?" : "Odstranit úložiště?",
"Click to recheck the configuration" : "Klikněte pro opětovnou kontrolu nastavení",
"Saved" : "Uloženo",
"Saving …" : "Ukládání…",
"Saving …" : "Ukládání …",
"Save" : "Uložit",
"Failed to save global credentials" : "Nepodařilo se uložit globální přihlašovací údaje",
"Failed to save global credentials: {message}" : "Nepodařilo se uložit globální přihlašovací údaje: {message}",
@@ -159,8 +159,8 @@ OC.L10N.register(
"OAuth1" : "OAuth1",
"App key" : "Klíč aplikace",
"App secret" : "Tajemství aplikace",
"Checking storage …" : "Kontrola úložiště…",
"Checking storage …" : "Kontrola úložiště …",
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Opravdu chcete toto externí úložiště odpojit? Způsobí že toto úložiště nebude k dispozici v Nextcloud a povede to ke smazání těchto souborů a složek na jakémkoli synchronizačním klientovi, který je v tuto chvíli připojen, ale nesmaže žádné soubory a složky na externím úložišti jako takovém.",
"Saving …" : "Ukládání…"
"Saving …" : "Ukládání …"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");

View File

@@ -101,7 +101,7 @@
"Enter missing credentials" : "Zadejte chybějící přihlašovací údaje",
"Credentials successfully set" : "Přihlašovací údaje úspěšně nastaveny",
"Error while setting credentials: {error}" : "Chyba při nastavování přihlašovacích údajů: {error}",
"Checking storage …" : "Kontrola úložiště …",
"Checking storage …" : "Kontrola úložiště …",
"There was an error with this external storage." : "U tohoto externího úložiště došlo k chybě.",
"We were unable to check the external storage {basename}" : "Nepodařilo se zkontrolovat externí úložiště {basename}",
"Examine this faulty external storage configuration" : "Prozkoumejte nastavení tohoto vadného externího úložiště",
@@ -136,7 +136,7 @@
"Delete storage?" : "Odstranit úložiště?",
"Click to recheck the configuration" : "Klikněte pro opětovnou kontrolu nastavení",
"Saved" : "Uloženo",
"Saving …" : "Ukládání…",
"Saving …" : "Ukládání …",
"Save" : "Uložit",
"Failed to save global credentials" : "Nepodařilo se uložit globální přihlašovací údaje",
"Failed to save global credentials: {message}" : "Nepodařilo se uložit globální přihlašovací údaje: {message}",
@@ -157,8 +157,8 @@
"OAuth1" : "OAuth1",
"App key" : "Klíč aplikace",
"App secret" : "Tajemství aplikace",
"Checking storage …" : "Kontrola úložiště…",
"Checking storage …" : "Kontrola úložiště …",
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Opravdu chcete toto externí úložiště odpojit? Způsobí že toto úložiště nebude k dispozici v Nextcloud a povede to ke smazání těchto souborů a složek na jakémkoli synchronizačním klientovi, který je v tuto chvíli připojen, ale nesmaže žádné soubory a složky na externím úložišti jako takovém.",
"Saving …" : "Ukládání…"
"Saving …" : "Ukládání …"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}

View File

@@ -23,25 +23,25 @@
<!-- Login -->
<NcTextField
ref="login"
v-model="login"
class="external-storage-auth__login"
data-cy-external-storage-auth-dialog-login
:label="t('files_external', 'Login')"
:placeholder="t('files_external', 'Enter the storage login')"
minlength="2"
name="login"
required
:value.sync="login" />
required />
<!-- Password -->
<NcPasswordField
ref="password"
v-model="password"
class="external-storage-auth__password"
data-cy-external-storage-auth-dialog-password
:label="t('files_external', 'Password')"
:placeholder="t('files_external', 'Enter the storage password')"
name="password"
required
:value.sync="password" />
required />
</NcDialog>
</template>

View File

@@ -150,7 +150,7 @@ OC.L10N.register(
"Select" : "Vybrat",
"What are you requesting?" : "Co požadujete?",
"Request subject" : "Předmět požadavku",
"Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie…",
"Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie …",
"Where should these files go?" : "Kam by měly tyto soubory přijít?",
"Upload destination" : "Cíl nahrání",
"Revert to default" : "Vrátit na výchozí hodnotu",
@@ -237,8 +237,8 @@ OC.L10N.register(
"Can edit" : "Může upravovat",
"Custom permissions" : "Uživatelsky určená oprávnění",
"Resharing is not allowed" : "Příjemcům tohoto sdílení není dovoleno ho nasdílet dál dalším",
"Name or email …" : "Jméno nebo e-mail …",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
"Name or email …" : "Jméno nebo e-mail …",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
"Searching …" : "Hledání …",
"No elements found." : "Nenalezeny žádné prvky.",
"Search everywhere" : "Hledat všude",
@@ -284,7 +284,7 @@ OC.L10N.register(
"Share label" : "Štítek sdílení",
"Share link token" : "Nasdílet token odkazu",
"Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Nastavte token veřejného odkazu na sdílení na něco snadno zapamatovatelného nebo vytvořte nový token. Není doporučeno používat uhodnutelné tokeny pro sdílení, která obsahují citlivé informace.",
"Generating…" : "Vytváření…",
"Generating…" : "Vytváření …",
"Generate new token" : "Vytvořit nový token",
"Set password" : "Nastavit heslo",
"Password expires {passwordExpirationTime}" : "Platnost hesla skončí {passwordExpirationTime}",
@@ -410,9 +410,9 @@ OC.L10N.register(
"Only works for people with access to this folder" : "Funguje pouze pro uživatele, kteří mají k této složce přístup",
"Only works for people with access to this file" : "Funguje pouze pro uživatele, kteří mají k tomuto souboru přístup",
"Copy public link of \"{title}\" to clipboard" : "Zkopírovat veřejný odkaz na „{title}“ do schránky",
"Name or email …" : "Jméno nebo e-mail…",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu…",
"Searching …" : "Hledání…",
"Name or email …" : "Jméno nebo e-mail …",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
"Searching …" : "Hledání …",
"Search globally" : "Hledat všude",
"Submit name" : "Odeslat jméno",
"To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",

View File

@@ -148,7 +148,7 @@
"Select" : "Vybrat",
"What are you requesting?" : "Co požadujete?",
"Request subject" : "Předmět požadavku",
"Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie…",
"Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie …",
"Where should these files go?" : "Kam by měly tyto soubory přijít?",
"Upload destination" : "Cíl nahrání",
"Revert to default" : "Vrátit na výchozí hodnotu",
@@ -235,8 +235,8 @@
"Can edit" : "Může upravovat",
"Custom permissions" : "Uživatelsky určená oprávnění",
"Resharing is not allowed" : "Příjemcům tohoto sdílení není dovoleno ho nasdílet dál dalším",
"Name or email …" : "Jméno nebo e-mail …",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
"Name or email …" : "Jméno nebo e-mail …",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
"Searching …" : "Hledání …",
"No elements found." : "Nenalezeny žádné prvky.",
"Search everywhere" : "Hledat všude",
@@ -282,7 +282,7 @@
"Share label" : "Štítek sdílení",
"Share link token" : "Nasdílet token odkazu",
"Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Nastavte token veřejného odkazu na sdílení na něco snadno zapamatovatelného nebo vytvořte nový token. Není doporučeno používat uhodnutelné tokeny pro sdílení, která obsahují citlivé informace.",
"Generating…" : "Vytváření…",
"Generating…" : "Vytváření …",
"Generate new token" : "Vytvořit nový token",
"Set password" : "Nastavit heslo",
"Password expires {passwordExpirationTime}" : "Platnost hesla skončí {passwordExpirationTime}",
@@ -408,9 +408,9 @@
"Only works for people with access to this folder" : "Funguje pouze pro uživatele, kteří mají k této složce přístup",
"Only works for people with access to this file" : "Funguje pouze pro uživatele, kteří mají k tomuto souboru přístup",
"Copy public link of \"{title}\" to clipboard" : "Zkopírovat veřejný odkaz na „{title}“ do schránky",
"Name or email …" : "Jméno nebo e-mail…",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu…",
"Searching …" : "Hledání…",
"Name or email …" : "Jméno nebo e-mail …",
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
"Searching …" : "Hledání …",
"Search globally" : "Hledat všude",
"Submit name" : "Odeslat jméno",
"To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",

View File

@@ -34,7 +34,7 @@ OC.L10N.register(
"{user} accepted the remote share of {file}" : "{user} اشتراک‌گذاری از راه دور {file} را پذیرفت.",
"{user} declined the remote share of {file}" : "{user} اشتراک‌گذاری از راه دور {file} را رد کرد.",
"{user} unshared {file} from you" : "{user} فایل {file} از شما به اشتراک گذاشته نشده است",
"Shared with {user}" : "با {user} به اشتراک گذاشته شده است",
"Shared with {user}" : "با {user} به اشتراک گذاشته",
"Removed share for {user}" : "اشتراک‌گذاری برای {user} حذف شد",
"You removed yourself" : "شما خدتان را حذف کردید",
"{actor} removed themselves" : "{actor} خودشان را حذف کردند",
@@ -262,11 +262,11 @@ OC.L10N.register(
"Terms of service" : "شرایط و قوانین",
"Share with {user}" : "اشتراک‌گذاری با {user}",
"Share with email {email}" : "اشتراک‌گذاری با ایمیل {email}",
"Share with group" : "با گروه به اشتراک بگذارید",
"Share with group" : "اشتراکگذاری با گروه",
"Share in conversation" : "اشتراک گذاری در گفتگو",
"Share with {user} on remote server {server}" : "اشتراک‌گذاری با {user} در سرور {server}",
"Share with remote group" : "اشتراک‌گذاری با گروه از راه دور",
"Share with guest" : "با مهمان به اشتراک بگذارید",
"Share with guest" : "اشتراکگذاری با مهمان",
"Update share" : "به‌روزرسانی هم‌رسانی",
"Save share" : "ذخیره اشتراک گذاری",
"Read" : "خواندن",

View File

@@ -32,7 +32,7 @@
"{user} accepted the remote share of {file}" : "{user} اشتراک‌گذاری از راه دور {file} را پذیرفت.",
"{user} declined the remote share of {file}" : "{user} اشتراک‌گذاری از راه دور {file} را رد کرد.",
"{user} unshared {file} from you" : "{user} فایل {file} از شما به اشتراک گذاشته نشده است",
"Shared with {user}" : "با {user} به اشتراک گذاشته شده است",
"Shared with {user}" : "با {user} به اشتراک گذاشته",
"Removed share for {user}" : "اشتراک‌گذاری برای {user} حذف شد",
"You removed yourself" : "شما خدتان را حذف کردید",
"{actor} removed themselves" : "{actor} خودشان را حذف کردند",
@@ -260,11 +260,11 @@
"Terms of service" : "شرایط و قوانین",
"Share with {user}" : "اشتراک‌گذاری با {user}",
"Share with email {email}" : "اشتراک‌گذاری با ایمیل {email}",
"Share with group" : "با گروه به اشتراک بگذارید",
"Share with group" : "اشتراکگذاری با گروه",
"Share in conversation" : "اشتراک گذاری در گفتگو",
"Share with {user} on remote server {server}" : "اشتراک‌گذاری با {user} در سرور {server}",
"Share with remote group" : "اشتراک‌گذاری با گروه از راه دور",
"Share with guest" : "با مهمان به اشتراک بگذارید",
"Share with guest" : "اشتراکگذاری با مهمان",
"Update share" : "به‌روزرسانی هم‌رسانی",
"Save share" : "ذخیره اشتراک گذاری",
"Read" : "خواندن",

View File

@@ -545,6 +545,8 @@ class ShareAPIController extends OCSController {
$this->lock($share->getNode());
} catch (LockedException $e) {
throw new OCSNotFoundException($this->l->t('Could not delete share'));
} catch (NotFoundException $e) {
$this->logger->debug('File of to be deleted share was not found, skip locking', ['exception' => $e]);
}
if (!$this->canAccessShare($share)) {

View File

@@ -15,6 +15,7 @@ use OCP\Http\Client\IClientService;
use OCP\IDBConnection;
use OCP\IUser;
use OCP\Server;
use OCP\Share\IShare;
class MountProvider implements IMountProvider {
public const STORAGE = '\OCA\Files_Sharing\External\Storage';
@@ -54,7 +55,7 @@ class MountProvider implements IMountProvider {
$qb->select('remote', 'share_token', 'password', 'mountpoint', 'owner')
->from('share_external')
->where($qb->expr()->eq('user', $qb->createNamedParameter($user->getUID())))
->andWhere($qb->expr()->eq('accepted', $qb->createNamedParameter(1, IQueryBuilder::PARAM_INT)));
->andWhere($qb->expr()->eq('accepted', $qb->createNamedParameter(IShare::STATUS_ACCEPTED, IQueryBuilder::PARAM_INT)));
$result = $qb->executeQuery();
$mounts = [];
while ($row = $result->fetchAssociative()) {

Some files were not shown because too many files have changed in this diff Show More