Commit Graph

458 Commits

Author SHA1 Message Date
Côme Chilliet 4eed4bff3a chore: Fix test in user_ldap passing wrong type
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-06-11 09:45:30 +02:00
Anna Larch bbf05d3b8f fix(user_ldap): allow editing profile fields not managed by LDAP
canEditProperty() was returning true (editable) when an LDAP attribute
was configured for a field, and false when no attribute was configured.
This is inverted: a field with an LDAP attribute mapping is owned by
LDAP and should not be user-editable, while a field with no mapping is
not sourced from LDAP and the user should be free to set it themselves.

Fixes profile fields being uneditable for all LDAP users whose admin
has not configured attribute mappings for those fields.

Assisted-by: ClaudeCode:claude-sonnet-4-6
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-06-04 12:07:10 +02:00
Anna Larch 967d8de792 perf(user_ldap): chunk oracle queries for lower bind cost
Oracle's OCI8 driver binds each named parameter individually via
OCIBindByName, making queries with 65 000 parameters dramatically
slower than on MySQL or PostgreSQL — slow enough to time out in CI
and degrade production LDAP syncs on large installations.

Lower maxSlices to 5 for Oracle (5 000 params/query) via a match
expression alongside the existing SQLite special-case. SQLite and
all other databases are unchanged.

Assisted-by: ClaudeCode:claude-sonnet-4-6
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-06-04 10:33:42 +02:00
Côme Chilliet 1ab09ec753 chore: Apply new coding standard to all files
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-01 13:46:39 +02:00
Anna Larch 20d8540f4f test(user_ldap): speed up AbstractMappingTestCase chunking test
Reduce mapped entries from 3332 to 14 (every 5000th instead of every
20th) so the test exercises the chunking path without inserting thousands
of rows. Move the explanatory comment above the loop where it belongs.

Note: the implementation chunks at its own 65000 total-parameter limit
(not Postgres's 65535 IN-list limit), so the comment uses 65000.

Signed-off-by: Anna Larch <anna@nextcloud.com>
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 16:07:21 +02:00
Côme Chilliet c88a1d3961 fix: Remove static vars usage in user_ldap
There are still some left, harder to remove.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-23 16:48:31 +01:00
Côme Chilliet 279d5c226e chore(user_ldap): Adapt code to LDAP constructor change, remove dead code
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-02 16:34:04 +01:00
Côme Chilliet d8084559a9 chore: Add missing return type in tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-26 15:22:09 +01:00
Côme Chilliet 60c86848e4 fix: Use proper DI for LDAP class
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-26 15:21:40 +01:00
Côme Chilliet 8b432809b4 fix: Adapt LDAPProvider tests to code changes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-26 13:31:26 +01:00
provokateurin f12cecb684 feat(rector): Enable SafeDeclareStrictTypesRector
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-09 10:59:31 +01:00
Carl Schwan 5d0d0c17e5 chore(rector): Run rector on apps, core and tests directory
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:23:23 +01:00
Carl Schwan 11cf69d8ba fix(psalm): Fix static analysis issues in apps/*/tests
There are still 1200 more to fix before we can enable static analysis
for the tests.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-16 12:00:51 +01:00
Côme Chilliet c1dd559965 fix: Use strict array comparisons in user_ldap
Otherwise there are issues with string values looking like numbers.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-13 11:46:57 +01:00
Carl Schwan 2ae9626fec refactor(user_ldap): Port most of the remaining deprecated IConfig usage
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-11 13:27:48 +01:00
Carl Schwan 14daf4ca16 refactor(user_ldap): Port User\User to IUserConfig
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-11 13:27:48 +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 c99d27436f chore: adjust duplicated use in User_LDAPTest
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
Ferdinand Thiessen d6d6747a73 refactor: apply rector rules for PHPUnit 10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
Arthur Schiwon 155b75027c feat: locally cache frequently requested LDAP mapping data
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-10-17 11:09:31 +02:00
Louis Chemineau 87cb225668 refactor(user_ldap): Rewrite setup wizard
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-09-30 22:49:43 +02:00
Ferdinand Thiessen 3b8c50e2c7 fix: remove executable flag from source files
(exceptions for real scripts, but source files never should be executable)

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-04 11:57:44 +02:00
Côme Chilliet 7127ac4b43 fix: Replace OC_App::loadApp calls by IAppManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-07-10 11:40:27 +02:00
Robin Appelman aa15f9d16d chore: run rector
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-07-01 22:45:52 +02: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 +02:00
Côme Chilliet f48e5aa1f3 fix(user_ldap): Switch to OCP\IAppConfig and fix Helper constructor calls
Using OCP\AppFramework\Services\IAppConfig is not possible because the
 Helper is queried from places outside of the application DI container
(ajax pages, tests, other applications through ILDAPProviderFactory…)

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 16:08:52 +02:00
Côme Chilliet bc7309ca1c fix(user_ldap): Store the list of used configuration prefixed in appconfig
This avoids getting all keys from appconfig, which was triggering
 loading of lazy configuration on all requests.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-10 16:08:45 +02:00
Joas Schilling 6c7f8ea55b test: Migrate User LDAP to phpunit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-28 10:10:45 +02:00
Côme Chilliet 0cf4f3cc71 fix: Replace all usages of OC_User backend method calls by IUserManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-04-10 11:29:21 +02:00
Côme Chilliet f033ef7c18 fix: Migrate all uses of OCP\Template to OCP\Template\ITemplateManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-06 15:49:25 +01:00
Daniel Kesselberg 7facae6b83 fix: remove caching in fetchListOfGroups
When using nested groups without a memberof overlay, then fetchListOfGroups is called from getGroupsByMember without applying the group filter.

In some setups, the "unfiltered" result is then written back to the group mapping table. That might cause random "An administrator removed you from group" activities.

I was unable to replicate it locally, but we got the feedback that the random activities stopped with the patch applied.

Ref: https://github.com/nextcloud/server/issues/42195

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-02-27 12:02:44 +01:00
Côme Chilliet 64863c9d46 chore: Apply new rector configuration to apps folder
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-02-13 11:46:42 +01:00
Côme Chilliet 12d1d1d389 fix(user_ldap): Remove now unused class FilesystemHelper
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-01-13 17:12:19 +01:00
Côme Chilliet e75dd1fc92 fix(user_ldap): Strong type User class and fix most type issues
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-01-13 17:12:19 +01:00
provokateurin 381077028a refactor(apps): Use constructor property promotion when possible
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-21 12:37:59 +02:00
Côme Chilliet 1580c8612b chore(apps): Apply new rector configuration to autouse classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-10-15 10:40:25 +02:00
Côme Chilliet 8927510685 Merge pull request #48223 from nextcloud/feat/add-rector-config
Add rector config
2024-09-23 15:10:30 +02:00
Louis Chemineau 22d5d29c01 fix(users): Don't crash if disabled user is missing in the database
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-09-23 10:40:38 +02:00
Côme Chilliet 1a4978c4ea chore: Apply rector configuration to apps folder
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-20 17:51:00 +02:00
provokateurin 9836e9b164 chore(deps): Update nextcloud/coding-standard to v1.3.1
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
Christoph Wurst 49dd79eabb refactor: Add void return type to PHPUnit test methods
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-09-15 22:32:31 +02:00
Carl Schwan 986a3d45f8 feat(user_ldap): Introduce user id assigned typed events for LDAP usage
Based on work from https://github.com/nextcloud/server/pull/32019

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-09-10 14:06:11 +02:00
Côme Chilliet c3029c70d5 fix(user_ldap): Fix user_ldap tests by mocking new method exists in manager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-08-27 12:14:34 +02:00
Côme Chilliet fffba1c6af fix(ldap): Fix user_ldap attribute casing to fix tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-08-27 10:06:45 +02:00
Daniel Kesselberg af6de04e9e style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
Akhil b1230cd53d Use cache in LDAP backend's checkPassword
Signed-off-by: Akhil <akhil@e.email>
2024-08-16 17:55:47 +05:30
Arthur Schiwon 0447aa4e62 fix(LDAP): remove unneeded dependencies
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-08-01 20:13:11 +02:00
Ferdinand Thiessen 14778811b4 refactor: Use IAppConfig for setting cron type
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-06-28 18:00:39 +02:00
Andy Scherzinger 2d62b0a936 Merge pull request #45573 from nextcloud/chore/noid/spdx-batch9
Add SPDX header - batch 9
2024-05-30 19:24:53 +02:00
Andy Scherzinger 8d8891c5bc chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-30 15:49:33 +02:00