Commit 03eca596a2ac75b3de23795d3f896dca83a1b6f2

Authored by Neil Blakey-Milner
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
docs/VERSION.txt
1   -3.0.3.1
  1 +3.0.3.2
... ...
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 ?>
... ...