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,6 +38,7 @@ class UpgradeFunctions { | ||
| 38 | "3.0.1.3" => array('addTransactionTypes3013'), | 38 | "3.0.1.3" => array('addTransactionTypes3013'), |
| 39 | "3.0.1.4" => array('createWorkflowPermission'), | 39 | "3.0.1.4" => array('createWorkflowPermission'), |
| 40 | "3.0.2" => array("fixDocumentRoleAllocation"), | 40 | "3.0.2" => array("fixDocumentRoleAllocation"), |
| 41 | + "3.0.3.2" => array("createFolderViewPermission"), | ||
| 41 | ); | 42 | ); |
| 42 | 43 | ||
| 43 | var $descriptions = array( | 44 | var $descriptions = array( |
| @@ -52,6 +53,7 @@ class UpgradeFunctions { | @@ -52,6 +53,7 @@ class UpgradeFunctions { | ||
| 52 | 'addTransactionTypes3013' => 'Add new folder transaction types', | 53 | 'addTransactionTypes3013' => 'Add new folder transaction types', |
| 53 | 'createWorkflowPermission' => 'Create the Core: Manage Workflow', | 54 | 'createWorkflowPermission' => 'Create the Core: Manage Workflow', |
| 54 | 'fixDocumentRoleAllocation' => 'Fix the document role allocation upgrade from 3.0.1', | 55 | 'fixDocumentRoleAllocation' => 'Fix the document role allocation upgrade from 3.0.1', |
| 56 | + 'createFolderViewPermission' => 'Create the Core: Folder View permission', | ||
| 55 | ); | 57 | ); |
| 56 | var $phases = array( | 58 | var $phases = array( |
| 57 | "setPermissionFolder" => 1, | 59 | "setPermissionFolder" => 1, |
| @@ -648,6 +650,41 @@ class UpgradeFunctions { | @@ -648,6 +650,41 @@ class UpgradeFunctions { | ||
| 648 | return; | 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 | ?> |