Commit 7248886ce9ea52f76ba279b5ac945fdd65603356

Authored by nbm
1 parent e6068d99

Use caching for GroupUtil::_listGroupIDsForUserExpand


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5070 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 10 additions and 2 deletions
lib/groups/GroupUtil.php
... ... @@ -232,9 +232,16 @@ class GroupUtil {
232 232 }
233 233  
234 234 // {{{ _listGroupsIDsForUserExpand
235   - function _listGroupIDsForUserExpand ($oUser, $aOptions = null) {
236   - global $default;
  235 + function _listGroupIDsForUserExpand ($oUser) {
237 236 $iUserId = KTUtil::getId($oUser);
  237 + global $default;
  238 + $oCache = KTCache::getSingleton();
  239 + $group = "groupidsforuser";
  240 + list($bCached, $mCached) = $oCache->get($group, $oUser->getId());
  241 + if ($bCached) {
  242 + $default->log->debug(sprintf("Using group cache for _listGroupIDsForUserExpand %d", $iUserId));
  243 + return $mCached;
  244 + }
238 245 $aGroupArray = GroupUtil::_invertGroupArray(GroupUtil::buildGroupArray());
239 246 $aDirectGroups = GroupUtil::listGroupsForUser($oUser);
240 247 $sQuery = "SELECT group_id FROM $default->users_groups_table WHERE user_id = ?";
... ... @@ -248,6 +255,7 @@ class GroupUtil {
248 255 }
249 256 $aGroupIDs = array_unique($aGroupIDs);
250 257 sort($aGroupIDs);
  258 + $oCache->set($group, $oUser->getId(), $aGroupIDs);
251 259 return $aGroupIDs;
252 260 }
253 261 // }}}
... ...