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 | 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 | 256 | if (!PEAR::isError($aDocuments)) { |
| 232 | 257 | foreach ($aDocuments as $oDocument) { |
| 233 | 258 | KTPermissionUtil::updatePermissionLookup($oDocument, $aOptions); |
| 234 | 259 | } |
| 235 | - } | |
| 260 | + }*/ | |
| 236 | 261 | } |
| 237 | 262 | // }}} |
| 238 | 263 | ... | ... |