Commit 186cc8995fa8d59dcda182b52ccd62310320c344
1 parent
05a7cb3b
Add rebuildPermissionLookups, which will rebuild all permission lookups
on all objects (pass true as the first parameter to only build lookups for objects without lookups). Also return an error indication from setPermissionForID git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4551 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
33 additions
and
1 deletions
lib/permissions/permissionutil.inc.php
| ... | ... | @@ -110,7 +110,8 @@ class KTPermissionUtil { |
| 110 | 110 | $oPermissionAssignment = KTPermissionUtil::getOrCreateAssignment($sPermission, $iObjectID); |
| 111 | 111 | $oDescriptor = KTPermissionUtil::getOrCreateDescriptor($aAllowed); |
| 112 | 112 | $oPermissionAssignment->setPermissionDescriptorID($oDescriptor->getID()); |
| 113 | - $oPermissionAssignment->update(); | |
| 113 | + $res = $oPermissionAssignment->update(); | |
| 114 | + return $res; | |
| 114 | 115 | } |
| 115 | 116 | // }}} |
| 116 | 117 | |
| ... | ... | @@ -442,6 +443,37 @@ class KTPermissionUtil { |
| 442 | 443 | KTPermissionUtil::updatePermissionLookupForPO($oNewPO); |
| 443 | 444 | } |
| 444 | 445 | // }}} |
| 446 | + | |
| 447 | + // {{{ rebuildPermissionLookups | |
| 448 | + function rebuildPermissionLookups($bEmptyOnly = false) { | |
| 449 | + if (empty($bEmptyOnly)) { | |
| 450 | + $sTable = KTUtil::getTableName('folders'); | |
| 451 | + $sQuery = sprintf("SELECT id FROM %s WHERE permission_lookup_id IS NULL AND permission_object_id IS NOT NULL", $sTable); | |
| 452 | + } else { | |
| 453 | + $sTable = KTUtil::getTableName('folders'); | |
| 454 | + $sQuery = sprintf("SELECT id FROM %s WHERE permission_object_id IS NOT NULL", $sTable); | |
| 455 | + } | |
| 456 | + $aIds = DBUtil::getResultArrayKey($sQuery, 'id'); | |
| 457 | + foreach ($aIds as $iId) { | |
| 458 | + $oFolder =& Folder::get($iId); | |
| 459 | + KTPermissionUtil::updatePermissionLookup($oFolder); | |
| 460 | + } | |
| 461 | + | |
| 462 | + if (empty($bEmptyOnly)) { | |
| 463 | + $sTable = KTUtil::getTableName('documents'); | |
| 464 | + $sQuery = sprintf("SELECT id FROM %s WHERE permission_lookup_id IS NULL", $sTable); | |
| 465 | + } else { | |
| 466 | + $sTable = KTUtil::getTableName('documents'); | |
| 467 | + $sQuery = sprintf("SELECT id FROM %s", $sTable); | |
| 468 | + } | |
| 469 | + $aIds = DBUtil::getResultArrayKey($sQuery, 'id'); | |
| 470 | + foreach ($aIds as $iId) { | |
| 471 | + $oDocument =& Document::get($iId); | |
| 472 | + KTPermissionUtil::updatePermissionLookup($oDocument); | |
| 473 | + } | |
| 474 | + | |
| 475 | + } | |
| 476 | + // }}} | |
| 445 | 477 | } |
| 446 | 478 | |
| 447 | 479 | ?> | ... | ... |