Commit Graph

31 Commits

Author SHA1 Message Date
macjohnny 767aa4e35f drastic speedup for nested ldap groups
add a function getUserGroupIds for retrieving group ids instead of group objects. this significantly improves performance when using many (nested) groups.

Changes a function call in getUserGroups to only retrieve group ids instead of objects.
this change significantly improves performance when using owncloud with many groups, e.g. nested ldap hierarchy (1.2.840.113556.1.4.1941), since getUserGroups gets called in oc_share::getItems, which is needed for every page request.
in my particular case, it took more than 10s to load the calendar page and more than 6s to load the file page.
this was in an environment with 100 user groups (nested) per user. The performance was bad due to the following call stack:
self::getManager()->getUserGroups($user)
  - getGroupObject() (executed for every group!)
     - groupExists() (resulting in many ldap-requests)
since the groups are loaded from ldap, it is unnecessary to check whether the group exists or not.
2014-06-13 00:04:06 +02:00
Morris Jobke ab7cff6dfd Revert "Merge pull request #8998 from macjohnny/master"
This reverts commit 482eded8b3, reversing
changes made to 354cace14a.
2014-06-12 14:56:46 +02:00
macjohnny e8e2e47e68 Update manager.php 2014-06-12 11:29:20 +02:00
macjohnny ede2aa236e Update manager.php
add a function getUserGroupIds for retrieving group ids instead of group objects. this significantly improves performance when using many (nested) groups.
2014-06-12 09:41:23 +02:00
Arthur Schiwon 2d83c68f05 make search parameter optional, which is already the case in the medthod it is passed to 2014-06-02 12:53:59 +02:00
Arthur Schiwon a9e8d53c8f fix PHPDoc 2014-06-02 12:53:59 +02:00
Arthur Schiwon 122ebf28f7 typo 2014-06-02 12:53:59 +02:00
Arthur Schiwon f9f9550969 small fixes / cleanup 2014-06-02 12:53:57 +02:00
Arthur Schiwon 734dd7013e add MetaData class for groups 2014-06-02 12:53:56 +02:00
Morris Jobke dc36d30953 Remove all occurences of @brief and @returns from PHPDoc
* test case added to avoid adding them later
2014-05-19 17:50:53 +02:00
Morris Jobke 804020bb6d Merge pull request #7363 from owncloud/optimize-startup-queries
Optimize some queries that are always executed when loading base.php
2014-05-19 01:21:37 +02:00
Lukas Reschke 7e448a376f Fix PHPDoc and typos
Some things my IDE complained about while creating a custom backend.

Fix PHPDoc and typos

Some things my IDE complained about while creating a custom backend.

Conflicts:
	lib/private/group/database.php
	lib/private/group/dummy.php
	lib/private/group/example.php
2014-05-13 19:08:14 +01:00
Robin McCorkell 87b548ed91 Fix all PHPDoc types and variable names, in /lib 2014-05-13 19:08:14 +01:00
Robin McCorkell a7ae2e874a Squash 'a | b' into 'a|b', in /lib 2014-05-13 19:08:14 +01:00
Robin McCorkell b5bc37d2e4 Fix @return array PHPDocs, in /lib 2014-05-13 19:08:14 +01:00
Robin McCorkell b653ad164b Replace @returns with @return, in /lib 2014-05-13 19:08:14 +01:00
Bart Visscher f569c721a6 Merge branch 'master' into optimize-startup-queries
Conflicts:
	apps/files_sharing/lib/sharedstorage.php
	tests/lib/group/manager.php

removed hasFilesSharedWith from lib/public/share.php and
sharedstorage.php to fix merge
2014-05-07 17:54:38 +02:00
Arthur Schiwon 45e42c25de Group Database backend must not gather user details itself but ask user
backends. This is a port to master from PR #7745

remove OC_GROUP_BACKEND_GET_DISPLAYNAME option for group backends

Conflicts:
	lib/private/group/backend.php

LDAP: getDisplayNamesInGroup is not an option for group backends anymore

Conflicts:
	apps/user_ldap/group_ldap.php
	apps/user_ldap/group_proxy.php

clean up group backends

Conflicts:
	lib/private/group/database.php

remove now unnecessary test

implement getDisplayNames in group manager

adjust user manager tests

test for group manager's displayNamesInGroup

trim must not be used in empty in PHP < 5.5

keep the constant to not provoke PHP warnings

Conflicts:
	lib/private/group/backend.php
2014-04-28 13:49:56 +02:00
Arthur Schiwon 64679b2e62 Remove limit and offset manipulation when getting users or groups, because it does not work when more than one user or group backend. Fixing it would be too costly performancewise, so we switch back to the model used in OC 5: limit and offset are effective per backend, and not a general constraint 2014-04-15 17:46:48 +02:00
Arthur Schiwon 5f8d9b3a4e ask implementsAction instead of checking method_exists for easier testing 2014-04-08 12:31:11 +02:00
Arthur Schiwon 698297feb3 add optional countUsersInGroup method to group backends 2014-04-08 12:04:38 +02:00
Bart Visscher cb37a2716a Also clear cached UserGroup when a user is added/removed 2014-02-27 20:09:07 +01:00
Bart Visscher 00e27d5343 Clear the cached user groups when a group is deleted 2014-02-27 19:12:03 +01:00
Bart Visscher 6f4ecd32b3 Add more caching in the group manager 2014-02-21 23:07:35 +01:00
Scrutinizer Auto-Fixer adaee6a5a1 Scrutinizer Auto-Fixes
This patch was automatically generated as part of the following inspection:
https://scrutinizer-ci.com/g/owncloud/core/inspections/cdfecc4e-a37e-4233-8025-f0d7252a8720

Enabled analysis tools:
 - PHP Analyzer
 - JSHint
 - PHP Copy/Paste Detector
 - PHP PDepend
2014-02-19 09:31:54 +01:00
Robin Appelman b35f679483 Fix test cases for group manager 2014-02-14 15:07:08 +01:00
Robin Appelman 0ba0596341 remove duplicate call to groupExists 2014-02-14 14:25:45 +01:00
Robin Appelman 8a86837eac remove unneeded ; in comment 2013-12-12 13:59:00 +01:00
Robin Appelman 3d29992378 user Group->users as assosiative array 2013-12-11 16:25:41 +01:00
Robin Appelman b126374780 cache the result from inGroup 2013-12-11 15:47:36 +01:00
Thomas Müller 9c9dc276b7 move the private namespace OC into lib/private - OCP will stay in lib/public
Conflicts:
	lib/private/vcategories.php
2013-09-30 16:36:59 +02:00