Commit 03eca596a2ac75b3de23795d3f896dca83a1b6f2
1 parent
1cc35d53
Create the "Core: Folder View" permission
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5523 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
38 additions
and
1 deletions
docs/VERSION.txt
lib/upgrades/UpgradeFunctions.inc.php
| ... | ... | @@ -38,6 +38,7 @@ class UpgradeFunctions { |
| 38 | 38 | "3.0.1.3" => array('addTransactionTypes3013'), |
| 39 | 39 | "3.0.1.4" => array('createWorkflowPermission'), |
| 40 | 40 | "3.0.2" => array("fixDocumentRoleAllocation"), |
| 41 | + "3.0.3.2" => array("createFolderViewPermission"), | |
| 41 | 42 | ); |
| 42 | 43 | |
| 43 | 44 | var $descriptions = array( |
| ... | ... | @@ -52,6 +53,7 @@ class UpgradeFunctions { |
| 52 | 53 | 'addTransactionTypes3013' => 'Add new folder transaction types', |
| 53 | 54 | 'createWorkflowPermission' => 'Create the Core: Manage Workflow', |
| 54 | 55 | 'fixDocumentRoleAllocation' => 'Fix the document role allocation upgrade from 3.0.1', |
| 56 | + 'createFolderViewPermission' => 'Create the Core: Folder View permission', | |
| 55 | 57 | ); |
| 56 | 58 | var $phases = array( |
| 57 | 59 | "setPermissionFolder" => 1, |
| ... | ... | @@ -648,6 +650,41 @@ class UpgradeFunctions { |
| 648 | 650 | return; |
| 649 | 651 | } |
| 650 | 652 | // }}} |
| 653 | + | |
| 654 | + // {{{ createFolderViewPermission | |
| 655 | + function createFolderViewPermission() { | |
| 656 | + DBUtil::startTransaction(); | |
| 657 | + $sPermissionsTable = KTUtil::getTableName('permissions'); | |
| 658 | + $aPermissionInfo = array( | |
| 659 | + 'human_name' => 'Core: Folder View', | |
| 660 | + 'name' => 'ktcore.permissions.folder_view', | |
| 661 | + 'built_in' => true, | |
| 662 | + ); | |
| 663 | + $res = DBUtil::autoInsert($sPermissionsTable, $aPermissionInfo); | |
| 664 | + if (PEAR::isError($res)) { | |
| 665 | + return $res; | |
| 666 | + } | |
| 667 | + $iFolderViewPermissionId = $res; | |
| 668 | + | |
| 669 | + $sQuery = "SELECT id FROM $sPermissionsTable WHERE name = ?"; | |
| 670 | + $aParams = array("ktcore.permissions.read"); | |
| 671 | + $iReadPermissionId = DBUtil::getOneResultKey(array($sQuery, $aParams), "id"); | |
| 672 | + | |
| 673 | + $sPermissionAssignmentsTable = KTUtil::getTableName('permission_assignments'); | |
| 674 | + $sQuery = "SELECT permission_object_id, permission_descriptor_id FROM $sPermissionAssignmentsTable WHERE permission_id = ?"; | |
| 675 | + $aParams = array($iReadPermissionId); | |
| 676 | + $aRows = DBUtil::getResultArray(array($sQuery, $aParams)); | |
| 677 | + foreach ($aRows as $aRow) { | |
| 678 | + $aRow['permission_id'] = $iFolderViewPermissionId; | |
| 679 | + DBUtil::autoInsert($sPermissionAssignmentsTable, $aRow); | |
| 680 | + } | |
| 681 | + $sDocumentTable = KTUtil::getTableName('documents'); | |
| 682 | + $sFolderTable = KTUtil::getTableName('folders'); | |
| 683 | + DBUtil::runQuery("UPDATE $sDocumentTable SET permission_lookup_id = NULL"); | |
| 684 | + DBUtil::runQuery("UPDATE $sFolderTable SET permission_lookup_id = NULL"); | |
| 685 | + DBUtil::commit(); | |
| 686 | + } | |
| 687 | + // }}} | |
| 651 | 688 | } |
| 652 | 689 | |
| 653 | 690 | ?> | ... | ... |