Commit Graph

111 Commits (feat/database/query-result-fetch-associative-fetch-num)

Author SHA1 Message Date
Côme Chilliet d18bb7e9bb
Build query once instead of in-loop
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-07 17:07:47 +07:00
Côme Chilliet 35069ad86a
Fix psalm spotted type errors
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-05 16:56:48 +07:00
Côme Chilliet 2c8b415c55
Move new methods to a new interface in OCP
This avoids breaking compatibility for group backends not based on
 ABackend abstract class.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-05 16:56:48 +07:00
Carl Schwan 3270b7f12e
Add batch methods in user backends
This allows for faster group search with significantly less DB traffic

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2023-09-05 16:56:47 +07:00
Joas Schilling daac5c9a95
fix(cache): Remove displayname cache entry on delete
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-08-28 14:59:54 +07:00
Joas Schilling 80f79e170d
fix!: Remove symfony EventDispatcherInterface from Group
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-27 23:13:37 +07:00
John Molakvoæ 4a86487859
fix: getGroups limit check syntax
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2023-05-11 17:30:04 +07:00
Robin Appelman 13b06ba4e2
revert public interface back to the original types, just cast them before passing the nulls to the backends
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-11 17:30:03 +07:00
Robin Appelman 7ad3574d71
also update groupinterface and database backend
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-11 17:30:03 +07:00
Robin Appelman e4b9ecd8f2
fix default values and type hints for GroupManager::search
ints really are ints

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-05-11 17:30:01 +07:00
Côme Chilliet 10296ba7e5
Fix tests, and fix Group::searchUsers to avoid duplicates
Also went back to searchUsers indexing the array by uid as it was the
 previous behavior and the IGroup phpdoc does not say anything about the
 keys.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-02 11:35:41 +07:00
Côme Chilliet 346344c153
Update version number in since and deprecated annotations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-27 12:04:32 +07:00
Côme Chilliet b6c17c6ce7
Clear up return types
usersInGroup index by int for BC, searchInGroup index by uid (string).

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-27 12:00:45 +07:00
Côme Chilliet 3c2b126eba
Make code clearer and bump @ deprecated annotations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-27 12:00:07 +07:00
Carl Schwan a4c599c1c9
Split new method in a new group backend interface
Better for backward compatibility, also move new interfaces to nc 26

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2023-04-27 12:00:01 +07:00
Carl Schwan 35dc223500
Optimize retrieving display name when searching for users in a group
This is recurrent scenario that we are searching for users and then for
each users we fetch the displayName. This is inefficient, so instead try
to do one query to fetch everything (e.g. Database backend) or use the
already existing DisplayNameCache helper.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2023-04-27 11:57:45 +07:00
Julien Veyssier d9925806eb
dispatch new BeforeGroupChangedEvent before setDisplayName on groups
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-02-21 10:42:38 +07:00
Côme Chilliet f5c361cf44
composer run cs:fix
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-20 11:45:08 +07:00
Anna Larch 7c4ceb444c Add group display name cache
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-11-28 11:52:55 +07:00
Côme Chilliet 32eef3b10f
Do not ignore return value of deleteGroup from backend
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-04-04 16:40:07 +07:00
Côme Chilliet 6be7aa112f
Migrate from ILogger to LoggerInterface in lib/private
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-03-24 16:21:25 +07:00
Côme Chilliet d5544923a9
Strong type OC\Group\MetaData
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-03-08 16:44:22 +07:00
Côme Chilliet 3ecba9fd17
Fix typing of OC\Group\MetaData::sorting
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-03-08 15:49:29 +07:00
John Molakvoæ (skjnldsv) 215aef3cbd
Update php licenses
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +07:00
Tom Grant 23dbbca1a0 Fix indentation error
Signed-off-by: tgrant <tom.grant760@gmail.com>
2021-03-17 23:04:15 +07:00
tgrant f1710b57bc Fix null displayname crash as described in #21885
Signed-off-by: tgrant <tom.grant760@gmail.com>
2021-03-17 23:04:15 +07:00
Roeland Jago Douma 54cffefed4
Merge pull request #25660 from hosting-de/feature/add-backend-list-groups
Show group backends in occ group:list --info and group:info
2021-03-05 08:49:43 +07:00
Roeland Jago Douma 68ec18323d Fix types in the Group Manager
Psalm found an issue. However the issue found was because of lying
docblocks. Fixed those and did some typing to make it all better.

For #25839

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2021-03-03 14:52:47 +07:00
Johannes Leuker 2796ef80ff Show group backends in occ group:list --info and group:info
Signed-off-by: Johannes Leuker <j.leuker@hosting.de>
2021-03-01 16:02:08 +07:00
Christoph Wurst 8b64e92b92
Bump doctrine/dbal from 2.12.0 to 3.0.0
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-01-08 11:45:19 +07:00
Christoph Wurst d89a75be0b
Update all license headers for Nextcloud 21
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-16 18:48:22 +07:00
Morris Jobke e4f53ff91b
Add typed events for adding and removing a subadmin
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-10-28 21:55:08 +07:00
Roeland Jago Douma 05edd1e5d6
Merge pull request #22890 from nextcloud/techdebt/18680/help-static-code-analysis-understand-code
Help static code analysis to understand code
2020-09-17 08:51:20 +07:00
Daniel Kesselberg 096fe20611
Help static code analysis to understand code.
It adds proper type hints to private namespace to allow private namespace methods.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-09-16 16:37:17 +07:00
Morris Jobke d3680e682a
Remove not needed semicolon and PHPDoc hint
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-16 16:18:43 +07:00
Morris Jobke fee13e7ffd
Search also the email and displayname in user mangement for groups
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-08-05 14:14:05 +07:00
Christoph Wurst a636aef585
Allow group search by display name
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-06-10 11:44:07 +07:00
Roeland Jago Douma fd805a0388
Merge pull request #20776 from nextcloud/enh/limit_group_queries
Improve group queries
2020-05-22 14:19:28 +07:00
Robin Appelman aa83b0b22d
dont get the group details if we only ask for the id
currenty when getting the groups for a user, the full group object is always created (and cached)
even if only the groupid is required

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-05-07 17:16:43 +07:00
Roeland Jago Douma 5ebb53593c
Improve group queries
Before we'd also get the diplayname for each group in the backend. In a
separate query. This is of course not ideal as this information is
obtained on each and every query. Now this is queried once and properly
cached.

Also added more caching to the manager.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2020-05-02 10:13:37 +07:00
Christoph Wurst cb057829f7
Update license headers for 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-29 11:57:22 +07:00
Christoph Wurst 734c62bee0
Format code according to PSR2
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:56:50 +07:00
Christoph Wurst 28f8eb5dba
Add visibility to all constants
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:54:27 +07:00
Christoph Wurst caff1023ea
Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +07:00
Christoph Wurst 14c996d982
Use elseif instead of else if
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 10:35:09 +07:00
Christoph Wurst 008e6d7e84
Merge pull request #20391 from nextcloud/refactor/spaces-cleanup
Remove all extra whitespace PSR2 does not like
2020-04-09 20:39:37 +07:00
Christoph Wurst 64510932b8
Merge pull request #20384 from nextcloud/techdebt/lowercase-keywords
Use php keywords in lowercase
2020-04-09 16:25:14 +07:00
Christoph Wurst 44577e4345
Remove trailing and in between spaces
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 16:07:47 +07:00
Christoph Wurst 36b3bc8148
Use php keywords in lowercase
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 14:04:56 +07:00
Christoph Wurst afbd9c4e6e
Unify function spacing to PSR2 recommendation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 13:54:22 +07:00