Commit graph

1048 commits

Author SHA1 Message Date
Carl Schwan
4344a54a1d
Merge pull request #34691 from nextcloud/profiler/ldap-backtrace
Add backtrace to ldap profiler collector
2022-10-25 17:00:23 +02:00
Côme Chilliet
142f9913a6
Expose mapped user count from LDAP and use that for user limit check
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-24 16:54:41 +02:00
Simon L
47da08fe85
Merge pull request #33945 from nextcloud/fix/noid/fair-use-ldap
LDAP to not register new users when outside of fair use or over limits
2022-10-21 18:53:16 +02:00
Carl Schwan
25519b7089 Add backtrace to ldap profiler collector
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 16:55:44 +02:00
Côme Chilliet
00c4c3d723
Merge pull request #30223 from nextcloud/nested_ldap_groups
Nested ldap groups
2022-10-20 15:03:37 +02:00
Carl Schwan
99a752922f Fix psalm
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 13:14:39 +02:00
Carl Schwan
60ec5e655c Check if cache is present with isset
Otherwise we get false for empty array

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 13:14:39 +02:00
Côme Chilliet
1a6a6c985a Bring back small fixes by Carl
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 13:14:39 +02:00
Côme Chilliet
746a5fb7e0 Fix LDAP recursive nested group support
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 13:14:39 +02:00
Carl Schwan
be5338e572 Revert Carl changes on apps/user_ldap/lib/Group_LDAP.php
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 13:14:31 +02:00
Côme Chilliet
8d07bc9b20
Cleanup typing and improve logging
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:17 +02:00
Côme Chilliet
81064b3d22
Fix ldap_parse_result call
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:17 +02:00
Côme Chilliet
e872f461f2
Adapt interface to new search signature
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:16 +02:00
Côme Chilliet
50a52ac2a5
Pass paging information directly to search and get rid of adapter
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:16 +02:00
Côme Chilliet
14804d9677
Renamed ambiguous $limit parameter to pageSize
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:16 +02:00
Côme Chilliet
d10dfa84db
Unfold call to ldap_parse_result. Handle cookie outside of adapter.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:15 +02:00
Côme Chilliet
3c9b1c5296
Do not init a paged search for read operations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:15 +02:00
Côme Chilliet
d6e49cd2de
Remove useless getReadArgs/setReadArgs methods from PagedResults
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:15 +02:00
Côme Chilliet
d790d45567
Remove dead code in paged result handling
There is only one paged result API now that PHP 7.2 is long dead.
Starting by removing empty function calls.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:56:14 +02:00
Carl Schwan
1b12a08ec2 Fix user_ldap tests
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 12:09:06 +02:00
Carl Schwan
e0fbd39840 Add back runtime cache for intermediate ldap read results
This is a small optimization that save a few LDAP queries

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 12:09:06 +02:00
Carl Schwan
33be3f754a Only cache base inGroup search
And not intermediate search for nested groups, this is causing issues
othewise with nested groups

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 12:09:06 +02:00
Côme Chilliet
604b5ace12 Add missing copyright author in Group_LDAP
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:09:06 +02:00
Côme Chilliet
69f9e9f387 Removed unused use declaration
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:09:06 +02:00
Côme Chilliet
150e6adbc5 Fix types in docblocks
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:09:06 +02:00
Côme Chilliet
6ed0d0b8b1 Refactor group membership listing for nested groups
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:09:06 +02:00
Côme Chilliet
8b19cfcd88 Small optimisation of _groupMembers
This will not change the result as users are check to be existing
 afterwards but avoids this check when we know it’s a group.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:09:06 +02:00
Côme Chilliet
d07f43dc12 Refactor _groupMembers to correctly use cache on intermediate results
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-20 12:09:06 +02:00
Carl Schwan
6522f8a6d9 Fix merging list with null
This fixes some cases observed with the debugger where we end up merging
a non empty list with null. The result is then null and the looping over
the items would then end.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 12:09:06 +02:00
Carl Schwan
49aa352069 Unify a bit the types of the fetcher
Now it will only accept a string as parameter instead of either a string
(DN) or a array (complete record).

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 12:09:06 +02:00
Carl Schwan
0fd7a51e3c Add more type hinting
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 12:09:06 +02:00
Arthur Schiwon
5647093319 Cache intermediates
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Co-authored-by: Carl Schwan <carl@carlschwan.eu>
2022-10-20 12:08:34 +02:00
Arthur Schiwon
ad2fdbe377 Refactor code to split common loop
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-10-20 12:08:24 +02:00
Arthur Schiwon
1e4ac22c94 Make it possible to return nested records whem walking over groups
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-10-20 12:08:09 +02:00
Arthur Schiwon
50d4963772
[LDAP] throw exception only against prov api
- unbreaks functionality for end users when on demand mapping takes
  place

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-10-18 23:26:16 +02:00
Arthur Schiwon
8e8acf2d90
LDAP to no register new users when outside of fair use or over limits
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-10-18 12:57:43 +02:00
Côme Chilliet
1d2d6e864d
Avoid double ldap_unbind in Wizard.php
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-11 09:54:04 +02:00
Côme Chilliet
0a9a749174
Fix code style with codesniffer
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-11 09:53:27 +02:00
luz paz
9d26671f05 Fix typos in apps/ subdirectory
Found via `codespell -q 3 -S l10n,./apps/files_external/3rdparty -L adn,ba,boxs,keypair,jus,optionel,ressource,tabel ./apps/`

Signed-off-by: luz paz <luzpaz@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2022-09-05 12:59:54 +00:00
Carl Schwan
b888c61463
Merge pull request #33047 from nextcloud/fix/ijob-logger-deprecated
Deprecated ILogger from IJob
2022-08-23 16:55:42 +02:00
Joas Schilling
f4885ee3ba
Remove unused method
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-22 14:15:32 +02:00
Joas Schilling
ef60257110
Fix plural usage in LDAP wizard
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-22 14:14:47 +02:00
Carl Schwan
48d9c4d2b0
Port existing server code to new interface
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-08-08 17:03:19 +02:00
Carl Schwan
d5c23dbb9f Move CappedMemoryCache to OCP
This is an helpful helper that should be used in more place than just
server and this is already the case with groupfodlers, deck, user_oidc
and more using it, so let's make it public

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-07-14 15:54:31 +02:00
blizzz
52c957e751
simplify
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2022-06-28 16:07:11 +02:00
Arthur Schiwon
d97f32dd8e
delete groups in chunks instead of one by one
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-06-28 14:35:18 +02:00
Arthur Schiwon
632f2d7760
cleanup LDAP's UpdateGroups
- TimedJob from API
- DI of config
- property types
- throws hints in phpdoc
- argument and return types
- replace depracet execute() with executeStatement or -Query
- a missing return statement

Co-authored-by: Carl Schwan <carl@carlschwan.eu>

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2022-06-28 14:34:56 +02:00
Carl Schwan
35d8bdc840 Fix profiler trying to serialize invalid utf8
The cookie value contains invalid utf8 characters most of the time so
let's just ignore it as it is also not that interesting to analyse.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-06-20 11:11:12 +02:00
Carl Schwan
ec6b83cc18 Add stricter psalm type for CappedMemoryCache
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-12 15:06:18 +02:00
Carl Schwan
95b5187300 Don't use slow hashing to check the LDAP binding
Using password_hash is expensive and should be used for hashing
passwords when saving them in the database. Here we just want to see if
the bind was already done with the given password, so use a fast hashing
algorythm.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-05 16:29:38 +02:00