Commit Graph

805 Commits (451d6d2eee115a4d1dbd6453feaa57273921160f)

Author SHA1 Message Date
Stephan Orbaugh f8fd111946
Merge pull request #55260 from IONOS-Productivity/feature/add_json_output_to_occ_admin-delegation
admin-delegation occ - add output option for show command to support JSON formats
2025-09-30 13:48:31 +07:00
Côme Chilliet 7a327b98cc
Merge pull request #55261 from nextcloud/fix/hide-empty-settings-section
fix(admin): Hide empty section for users admin delegation
2025-09-28 19:02:41 +07:00
Côme Chilliet 407cc43069
Merge pull request #55321 from nextcloud/fix/improve-connectivity-check
Improve connectivity check
2025-09-28 14:51:32 +07:00
Côme Chilliet 20e536839a
feat: Add admin-delegation-section as well for completeness
Also renamed delegation into admin-delegation in xml schema.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-28 14:50:15 +07:00
Côme Chilliet 92b1dda5e2
fix(settings): Put Users delegated settings back into admindelegation section
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-28 14:50:14 +07:00
Côme Chilliet 09acd7e308
feat(settings): Add support for delegated settings not appearing in menu
Adds a new type of settings, delegation, which is only used for admin
 delegation but does not appear in admin menu.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-28 14:50:14 +07:00
Côme Chilliet 480ef16946
fix(admin): Hide empty section for users admin delegation
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-28 14:50:13 +07:00
provokateurin d59338b377
refactor: Apply rector Nextcloud 26 set
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-09-28 11:45:52 +07:00
Ferdinand Thiessen aca305aeba fix(settings): add missing sharing autocompletion configs to UI
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-26 18:26:37 +07:00
Côme Chilliet 1c4276eea2
fix(setupchecks): Remove startpage from connectivity check and avoid redirection
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-26 16:50:54 +07:00
Côme Chilliet cc3851f73c
fix(setupchecks): Use a lighter request to test connectivity
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-26 16:48:24 +07:00
Misha M.-Kupriyanov c04398c2bd feat(admin-delegation): add JSON output support with validation
- Add --output option supporting plain, json, and json_pretty formats
- Add validateOutputFormat() method for input validation
- Implement proper error handling for invalid output formats
- Support empty state handling for both plain and JSON outputs
- Use Base class writeArrayInOutputFormat() for consistent JSON output
- Maintain backward compatibility with plain format as default

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-09-23 13:30:14 +07:00
Misha M.-Kupriyanov 898d5a5fcc refactor(admin-delegation): extract data collection logic to separate methods
- Extract collectDelegationData() method to eliminate code duplication
- Add formatSettingsData() method for consistent data formatting
- Add outputPlainFormat() method to separate concerns
- Add proper empty state handling with user-friendly message

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-09-23 13:30:14 +07:00
Misha M.-Kupriyanov 613a643fc5 refactor(admin-delegation): extract plain output to new function
prepare to add json output

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-09-23 13:30:14 +07:00
Misha M.-Kupriyanov 7fe45314b3 chore(admin-delegation): remove unused settings variable
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-09-23 13:30:14 +07:00
Maxence Lange 70dd0de0ff fix(userconfig): using api bit functions
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-09-17 10:17:53 +07:00
Maxence Lange 0249e3a2f5 fix(userconfig): set 'mail' as indexed
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-09-17 10:17:52 +07:00
Carl Schwan 7e1c49ad9d refactor: Port away from IQueryBuilder::execute in apps/
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-09-16 11:35:01 +07:00
Ferdinand Thiessen e266543d67 fix(settings): rename "Settings presets" to "Quick presets"
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-12 14:53:16 +07:00
Josh 34f1d52cf6 chore: Remove 'json' module from PHP modules check
Removed 'json' module from the list of required PHP modules.

It's built-in and not possible to disable at compile time since PHP 8.0.0.

Refs:
- https://www.php.net/manual/en/json.installation.php
- https://wiki.php.net/rfc/always_enable_json
- https://www.php.net/ChangeLog-8.php#8.0.0

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-09-11 13:51:07 +07:00
Joas Schilling d652c32a14
fix(security): Update Expires time
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-09-04 08:56:48 +07:00
Louis Chemineau ed02d0df05 feat(Settings): Add section to select preset
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-08-27 14:20:58 +07:00
Ferdinand Thiessen 79184f3aed
feat(settings): migrate setup checks to Vue to prevent visual issues
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-26 18:35:55 +07:00
Maxence Lange a81d58970c feat(lexicon): set/get current preset from controller
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>

feat(lexicon): set/get current preset from controller
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-08-26 09:00:04 +07:00
Enjeck C eb0ddffaaa fix: Make some strings in CodeIntegrity.php translatable
Signed-off-by: Enjeck C <patrathewhiz@gmail.com>
2025-08-24 20:23:51 +07:00
Kate 4edfef4dd5
Merge pull request #53895 from nextcloud/fix/cleanup-updater-class 2025-08-19 17:40:15 +07:00
Maxence Lange e1c7f6020c feat(preset): adding /settings/preset endpoint
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-08-19 10:55:48 +07:00
Maxence Lange 66cc7b731a
Merge pull request #54408 from nextcloud/feat/noid/preset-on-share-link-expire-date
feat(preset): share link expiration date
2025-08-19 10:24:43 +07:00
Côme Chilliet 12edd2b23a
fix: Deduplicate code by using DependencyAnalyzer in the AppManager
Was a bit more complicated than expected because of a dependency loop,
the L10N factory uses the app manager, thus the AppManager cannot depend
on I10N directly or indirectly in its constructor.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 17:09:40 +07:00
Côme Chilliet 4abfd4871f
chore: Move isAppCompatible and shouldUpgrade to the app manager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 16:18:38 +07:00
Ferdinand Thiessen 0dd8e5e32e
feat(settings): allow to set own timezone in personal settings
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-18 12:35:31 +07:00
Maxence Lange 6076b67696 feat(preset): share link expiration date
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-08-14 16:07:32 +07:00
Maxence Lange cb84ccc57d feat(preset): share password protection
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-08-12 14:37:32 +07:00
Lukas Schaefer 1ae4764073
chore(settings): Rename ai settings to assistant
Signed-off-by: Lukas Schaefer <lukas@lschaefer.xyz>
2025-08-08 13:54:08 +07:00
yemkareems aa227f1c55 feat: add bluesky to accounts, show the same in profile edit and visibility option, in view profile and also in sharing tab
Signed-off-by: yemkareems <yemkareems@gmail.com>
2025-08-08 08:06:45 +07:00
Julien Veyssier be7ef439cf
fix(taskprocessing): move LAZY_CONFIG_KEYS constant to the private namespace
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-08-04 10:11:24 +07:00
Julien Veyssier 2e3fa51132
feat(taskprocessing): load and store some config keys lazily
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-08-04 10:11:24 +07:00
Joas Schilling 3ccb3160b4
Merge pull request #53898 from nextcloud/ci-mariadb-118
ci: test against MariaDB 11.8 (latest LTS)
2025-07-28 08:10:05 +07:00
Ferdinand Thiessen 074b994218
fix(settings): verify source of app-discover media
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-21 14:06:47 +07:00
Ferdinand Thiessen a18e61a1e5
feat(files_sharing): add config option for extending link-share permissions
This allows the admin to control the behavior whether link shares with
READ permissions should be extended to also gain SHARE permissions,
allowing users (public share receivers) to add the share to their cloud.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-17 16:59:36 +07:00
Josh 6b65031a08
feat(settings): add support for MariaDB 11.8 in setup checks
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-07-10 10:18:50 +07:00
Jana Peper f8886fe27a feat: add toggle for AI guest restriction
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
2025-07-03 10:25:19 +07:00
Ferdinand Thiessen 5981b7eb51
chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +07:00
John Molakvoæ bd00b75b29
Merge pull request #53671 from nextcloud/fix/read-only-share-download 2025-07-01 15:11:06 +07:00
Ferdinand Thiessen 54f55a1a0e
Merge pull request #53429 from nextcloud/enh/opcache-checks
feat(settings): simplify OPcache checks
2025-07-01 14:26:04 +07:00
Joas Schilling 60b8384e48
Merge branch 'master' into remove-x-xss-protection 2025-06-30 21:32:22 +07:00
Ferdinand Thiessen b1282f75fa
fix(settings): use correct scope for translations
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-06-26 18:26:02 +07:00
skjnldsv 9806a9830c feat(files_sharing): allow viewing files with download disabled
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-26 11:47:53 +07:00
MichaIng 0d10c4fb33
feat(settings): simplify OPcache checks
For the overall OPcache size check, we currently compare used memory with free memory. However, `opcache.memory_consumption` is split into `used_memory`, `free_memory` and `wasted_memory`. When cached files change on disk, old entries are not replaced or removed, but remain as wasted memory, until the cache is actually full, and if their percentage is above `opcache.max_wasted_percentage`, which is 5% by default. When this happens, the engine is restarted, resetting the cache completely, like a `opcache_reset()` call.

As long as we do not consider wasted cache, recommendations based on free memory can be false. To solve this, we could count wasted memory as free memory, if it is above `opcache.max_wasted_percentage`, as the engine will be restarted as soon as needed, freeing up this wasted space. On the other hand, wasted memory below the threshold permanently blocks the OPcache, which supports counting it as used memory. Depending on the situation, instead of raising OPcache size, it could be also advised to reduce `opcache.max_wasted_percentage`. But too frequent cache resets break its purpose as well.

In my opinion, the matter is too complex to consider wasted cache correctly, and do precise recommendations, but we should focus on reducing false positives instead. What we know for sure is: if the cache is full (`$status['cache_full'] === true`), and the limit for cached keys has not been reached, the OPcache was too small to maintain free space, with wasted memory below the configured threshold, where it consumes memory permanently. Recommending to raise the OPcache size in this case, is hence as accurate as it gets. Even if 5% wasted cache could be freed, 95% used memory is still above the previous threshold for the setup check warning. And if `opcache.max_wasted_percentage` is above 5%, then the admin must have decided to change the default, deciding that system memory consumption has lower priority than preventing OPcache engine restarts.

`cache_full` can be true as well if the limit for cached keys has been reached, hence we need to merge both checks. In this case `num_cached_keys` equals `max_cached_keys` exactly, hence it is easy to differentiale whether `opcache.max_accelerated_files` or `opcache.memory_consumption` needs to be raised to address the `cache_full` state.

In practice, this change relaxes the checks: the respective limit needs to be reached 100% instead of 90%, to trigger a warning, eliminating also false alarms if a large share of the cache is consumed by wasted memory, which would be automatically freed once cache is 100% full.

Additionally, the recommendation for raising `opcache.max_accelerated_files` now says "a value higher than `max_cached_keys`", instead of "higher than `opcache.max_accelerated_files`". The actual limit, reflected by `max_cached_keys` from `opcache_get_status()`, [is a next higher value from a set of prime numbers](https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.max-accelerated-files). E.g. if `opcache.max_accelerated_files` is set to 10,000 (PHP default), the effective limit is 16,229 OPcache keys. Recommending "higher than 10000" could hence lead to a settings change without effect. For an effective change, the new value needs to be "higher than 16229" instead, which is what the setup check will show in this situation, with this change applied.

Signed-off-by: MichaIng <micha@dietpi.com>
2025-06-25 15:12:40 +07:00
invario 2b58f74cc8
Fix: Remove X-XSS-Protection use, check and recommendation
Co-authored-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
Signed-off-by: invario <67800603+invario@users.noreply.github.com>
2025-06-13 16:12:27 +07:00