Commit 9523ef6f36e73635ecde8448336fbdd6bd571002
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
Showing
1 changed file
with
27 additions
and
2 deletions
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 |