Côme Chilliet
30ba835e90
fix(user_ldap): Escape filter part when searching for group members
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-16 10:07:17 +02:00
Côme Chilliet
b37044d484
chore: Fix psalm issues following strong typing of IUser
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-11 09:45:32 +02:00
Benjamin Gaussorgues
2b7415ef4d
Merge pull request #60960 from nextcloud/carl/querybuilder-magic-number
...
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, main, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, guests_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / changes (push) Waiting to run
Psalm static code analysis / static-code-analysis (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-security (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ocp (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ncu (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-strict (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-summary (push) Blocked by required conditions
refactor: Use new IQueryBuilder::MAX_IN_PARAMETERS
2026-06-10 23:09: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
Carl Schwan
994565fec7
refactor: Use new IQueryBuilder::MAX_IN_PARAMETERS
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-03 13:45:29 +02:00
Côme Chilliet
84ba78fe6d
fix(user_ldap): Move accesses to AccessFactory instead of static var
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:19 +02:00
Côme Chilliet
68f417b354
chore(user_ldap): Move static var to static property and silence warning
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:19 +02:00
Côme Chilliet
0887810eb9
fix: Use a CappedMemoryCache instead of an array to cache stuff in user_ldap
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:18 +02:00
Côme Chilliet
18dddbc3b5
fix: Remove static var is Access class
...
It’s actually more correct to cache this per-instance.
What’s less clear is whether this can always fit in memory.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:18 +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
Carl Schwan
acceeb6dff
feat(ldap): Allow to search one user by one of its LDAP attribute
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-11 12:41:00 +02:00
Côme Chilliet
7bd0050564
feat(user_ldap): Add a limit and offset options for check-user --all-seen-users
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-04-30 14:44:20 +02:00
Côme Chilliet
0bcf760ac1
feat(user_ldap): Add option to check all seen users
...
This can be useful in some situations to sync all seen users with --update
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-04-30 14:37:13 +02:00
Ferdinand Thiessen
d8e8703796
chore: add missing Override attribute to app code
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:28 +02:00
Marcel Klehr
580ba0c689
fix: Change the setting name
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2026-04-14 10:49:15 +02:00
Marcel Klehr
63195fbf33
feat(user_ldap): Add config for partial search compatibility with ActiveDirectory
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2026-04-14 10:49:15 +02:00
Côme Chilliet
c20fcccfa6
Merge pull request #59379 from nextcloud/fix/clean-ldap-ocp-typing
...
fix: Fix typing in LDAP provider public interfaces
2026-04-07 10:52:36 +02:00
hamid
b7d6822592
fix(user_ldap): fix lastLogin reading wrong appid and configkey
...
fetchDetails() was calling getValueInt($uid, 'user_ldap', 'email')
instead of getValueInt($uid, 'login', 'lastLogin'), causing lastLogin
to always return 0 for offline LDAP users.
Fixes #58421
Signed-off-by: hamid <hamid@webpick.net>
2026-04-03 13:06:49 +01:00
Côme Chilliet
99a8e6c3c4
fix: Fix typing in LDAP provider public interfaces
...
Remove obsolete `resource` typing for ldap with PHP>=8.1.
Add proper attributes.
Add strong typing.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-04-01 14:36:40 +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
1398c598cf
fix: Remove static vars from user_ldap
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-23 16:34:01 +01:00
Arthur Schiwon
0ace547307
fix(LDAP): do not use count() inside a loop
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2026-03-18 11:34:35 +01:00
Arthur Schiwon
1c01895796
fix(LDAP): use displayname from DB, before reaching out to LDAP
...
As we do it with other information of the user, we now use the known value
of a users displayname, and leave the updating to the background job. This
improves performance of user facing actions where the display name is
required and reduces queries to the LDAP server that are typically more
expensive.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2026-03-18 11:34:35 +01:00
Côme Chilliet
77b0d6cbbc
fix: Add missing Attribute and fix parameter type in renewpassword route
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-17 16:58:34 +01:00
Côme Chilliet
8aedcb4a82
Merge pull request #58652 from nextcloud/automated/noid/rector-changes
...
Apply rector changes
2026-03-05 16:03:50 +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
nextcloud-command
663018455e
refactor: Apply rector changes
...
Signed-off-by: GitHub <noreply@github.com>
2026-03-01 14:43:11 +00: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
c6f56ddbd7
fix(user_ldap): Remove usages of deprecated IServerContainer
...
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
65e769a861
refactor: Apply comments
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:46 +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
Côme Chilliet
af760d174f
feat: Implement new interface in LDAP user backend to reflect permissions
...
This will prevent users from editing profile fields if those are
configured to be sync from LDAP.
I did not include the avatar in this because it has a special handling.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-03 10:22:26 +01:00
Côme Chilliet
f2a5a8d70e
fix(user_ldap): Fix crash in some code path when a DN is longer that 64
...
UserConfig throws in this case.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-27 14:05:53 +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
Ferdinand Thiessen
29e31ffdb1
refactor(user_ldap): migrate jQuery UI of password renewal to Vue
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-12 21:48:13 +01:00
Marcel Müller
f870041943
fix: Make User_Proxy IGetDisplayNameBackend complient
...
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2026-01-09 18:31:55 +01:00
Carl Schwan
1661855f5b
refactor: Make some code a bit more correct
...
- Use PHP_FLOAT_EPSILON for float comparaison
- Simplify some getValueBool code
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-11 13:27:50 +01:00
Carl Schwan
2ae9626fec
refactor(user_ldap): Port most of the remaining deprecated IConfig usage
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-11 13:27:48 +01:00
Carl Schwan
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
291ec1e474
fix(user_ldap): Fix activation enforcement when testing the config
...
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-12-04 17:16:21 +00:00
Côme Chilliet
7eefd725db
fix(user_ldap): Do not use variables directly in translation strings
...
I simply removed translations for exceptions which are never supposed to
happen apart from API misuse or code bug.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-12-01 10:40:50 +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
Côme Chilliet
c62166241a
chore(user_ldap): Remove ajax endpoints
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-21 14:23:58 +01:00
Côme Chilliet
28cef3ed6b
fix(ldap): Add OCS route for clearing mapping without using ajax
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-21 14:23:58 +01:00
Côme Chilliet
c414a7bdf8
fix: Fix documentation for controllers and update openapi.json
...
Also removed save action from WizardController as there is already a
route in ConfigApiController to save a configuration.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-21 14:23:57 +01:00
Côme Chilliet
ac078b6e68
chore: Fix typing in WizardResult
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-21 14:23:57 +01:00
Côme Chilliet
9d41d8172b
fix(ldap): Fix wizard controller action route
...
It seems naming a route parameter $action causes issue, so renamed it to
$wizardAction.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-21 14:23:57 +01:00
Côme Chilliet
a0e5548e49
feat(user_ldap): Add a wizard OCS API
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-21 14:23:57 +01:00