Commit 9523ef6f36e73635ecde8448336fbdd6bd571002

Authored by Conrad Vermeulen
1 parent 168ce234

KTS-3303

"Performance on updating of permissions takes a long time when there are many documents"
Fixed.

Committed By: Conrad Vermeulen
Reviewed By: Megan Watson

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@8384 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/permissions/permissionutil.inc.php
@@ -227,12 +227,37 @@ class KTPermissionUtil { @@ -227,12 +227,37 @@ class KTPermissionUtil {
227 KTPermissionUtil::updatePermissionLookup($oFolder, $aOptions); 227 KTPermissionUtil::updatePermissionLookup($oFolder, $aOptions);
228 } 228 }
229 } 229 }
230 - $aDocuments =& Document::getList(array($sWhere, $aParams)); 230 + $aIds = DBUtil::getResultArrayKey(array("SELECT id FROM documents WHERE permission_object_id=?", $aParams), 'id');
  231 + if (!PEAR::isError($aIds))
  232 + {
  233 + $cache = KTCache::getSingleton();
  234 +
  235 + foreach ($aIds as $iId)
  236 + {
  237 + $oDocument =& Document::get($iId);
  238 + KTPermissionUtil::updatePermissionLookup($oDocument, $aOptions);
  239 +
  240 + $metadataid = $oDocument->getMetadataVersionId();
  241 + $contentid = $oDocument->getContentVersionId();
  242 +
  243 + $cache->remove('KTDocumentMetadataVersion/id', $metadataid);
  244 + $cache->remove('KTDocumentContentVersion/id', $contentid);
  245 + $cache->remove('KTDocumentCore/id', $iId);
  246 + $cache->remove('Document/id', $iId);
  247 + unset($GLOBALS['_OBJECTCACHE']['KTDocumentMetadataVersion'][$metadataid]);
  248 + unset($GLOBALS['_OBJECTCACHE']['KTDocumentContentVersion'][$contentid]);
  249 + unset($GLOBALS['_OBJECTCACHE']['KTDocumentCore'][$iId]);
  250 +
  251 + unset($oDocument);
  252 + }
  253 + }
  254 +
  255 + /* $aDocuments =& Document::getList(array($sWhere, $aParams));
231 if (!PEAR::isError($aDocuments)) { 256 if (!PEAR::isError($aDocuments)) {
232 foreach ($aDocuments as $oDocument) { 257 foreach ($aDocuments as $oDocument) {
233 KTPermissionUtil::updatePermissionLookup($oDocument, $aOptions); 258 KTPermissionUtil::updatePermissionLookup($oDocument, $aOptions);
234 } 259 }
235 - } 260 + }*/
236 } 261 }
237 // }}} 262 // }}}
238 263