Commit 78ecf34eb90201028fca9057858aa0e243592dc0

Authored by nbm
1 parent 3c1f80cf

Move document permissions into the actions framework.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4103 c91229c3-7414-0410-bfa2-8a42b809f60b
plugins/ktcore/KTPermissions.php
1 <?php 1 <?php
2 2
3 -class KTDocumentPermissionsAction extends KTBuiltInDocumentAction { 3 +require_once(KT_LIB_DIR . '/actions/documentaction.inc.php');
  4 +require_once(KT_LIB_DIR . '/widgets/fieldWidgets.php');
  5 +
  6 +require_once(KT_LIB_DIR . "/foldermanagement/Folder.inc");
  7 +require_once(KT_LIB_DIR . "/groups/Group.inc");
  8 +
  9 +require_once(KT_LIB_DIR . "/permissions/permission.inc.php");
  10 +require_once(KT_LIB_DIR . "/permissions/permissionobject.inc.php");
  11 +require_once(KT_LIB_DIR . "/permissions/permissionassignment.inc.php");
  12 +require_once(KT_LIB_DIR . "/permissions/permissiondescriptor.inc.php");
  13 +require_once(KT_LIB_DIR . "/permissions/permissionutil.inc.php");
  14 +
  15 +$oKTActionRegistry =& KTActionRegistry::getSingleton();
  16 +
  17 +class KTDocumentPermissionsAction extends KTDocumentAction {
4 var $sBuiltInAction = 'editDocumentPermissions'; 18 var $sBuiltInAction = 'editDocumentPermissions';
5 var $sDisplayName = 'Permissions'; 19 var $sDisplayName = 'Permissions';
6 var $sName = 'ktcore.actions.document.permissions'; 20 var $sName = 'ktcore.actions.document.permissions';
  21 +
  22 + function do_main() {
  23 + $oTemplate = $this->oValidator->validateTemplate("ktcore/document/document_permissions");
  24 + $oPO = KTPermissionObject::get($this->oDocument->getPermissionObjectID());
  25 + $aPermissions = KTPermission::getList();
  26 + $aMapPermissionGroup = array();
  27 + foreach ($aPermissions as $oPermission) {
  28 + $oPA = KTPermissionAssignment::getByPermissionAndObject($oPermission, $oPO);
  29 + if (PEAR::isError($oPA)) {
  30 + continue;
  31 + }
  32 + $oDescriptor = KTPermissionDescriptor::get($oPA->getPermissionDescriptorID());
  33 + $iPermissionID = $oPermission->getID();
  34 + $aIDs = $oDescriptor->getGroups();
  35 + $aMapPermissionGroup[$iPermissionID] = array();
  36 + foreach ($aIDs as $iID) {
  37 + $aMapPermissionGroup[$iPermissionID][$iID] = true;
  38 + }
  39 + }
  40 + $aMapPermissionUser = array();
  41 + $aUsers = User::getList();
  42 + foreach ($aPermissions as $oPermission) {
  43 + $iPermissionID = $oPermission->getID();
  44 + foreach ($aUsers as $oUser) {
  45 + if (KTPermissionUtil::userHasPermissionOnItem($oUser, $oPermission, $this->oDocument)) {
  46 + $aMapPermissionUser[$iPermissionID][$oUser->getID()] = true;
  47 + }
  48 + }
  49 + }
  50 +
  51 + $oInherited = KTPermissionUtil::findRootObjectForPermissionObject($oPO);
  52 + if ($oInherited === $this->oDocument) {
  53 + $bEdit = true;
  54 + } else {
  55 + $iInheritedFolderID = $oInherited->getID();
  56 + /* $sInherited = displayFolderPathLink(Folder::getFolderPathAsArray($iInheritedFolderID),
  57 + Folder::getFolderPathNamesAsArray($iInheritedFolderID),
  58 + "$default->rootUrl/control.php?action=editFolderPermissions");*/
  59 + $sInherited = join(" &raquo; ", $oInherited->getPathArray());
  60 + $bEdit = false;
  61 + }
  62 +
  63 + $aTemplateData = array(
  64 + "permissions" => $aPermissions,
  65 + "groups" => Group::getList(),
  66 + "iDocumentID" => $_REQUEST['fDocumentID'],
  67 + "aMapPermissionGroup" => $aMapPermissionGroup,
  68 + "users" => $aUsers,
  69 + "aMapPermissionUser" => $aMapPermissionUser,
  70 + "edit" => $bEdit,
  71 + "inherited" => $sInherited,
  72 + );
  73 + return $oTemplate->render($aTemplateData);
  74 + }
7 } 75 }
8 $oKTActionRegistry->registerAction('documentaction', 'KTDocumentPermissionsAction', 'ktcore.actions.document.permissions'); 76 $oKTActionRegistry->registerAction('documentaction', 'KTDocumentPermissionsAction', 'ktcore.actions.document.permissions');
9 77
presentation/lookAndFeel/knowledgeTree/documentmanagement/documentPermissions.php deleted
1 -<?php  
2 -  
3 -require_once("../../../../config/dmsDefaults.php");  
4 -  
5 -require_once(KT_DIR . "/presentation/Html.inc");  
6 -  
7 -require_once(KT_LIB_DIR . "/templating/templating.inc.php");  
8 -require_once(KT_LIB_DIR . "/permissions/permission.inc.php");  
9 -require_once(KT_LIB_DIR . "/foldermanagement/Folder.inc");  
10 -require_once(KT_LIB_DIR . "/groups/Group.inc");  
11 -  
12 -require_once(KT_LIB_DIR . "/permissions/permission.inc.php");  
13 -require_once(KT_LIB_DIR . "/permissions/permissionobject.inc.php");  
14 -require_once(KT_LIB_DIR . "/permissions/permissionassignment.inc.php");  
15 -require_once(KT_LIB_DIR . "/permissions/permissiondescriptor.inc.php");  
16 -require_once(KT_LIB_DIR . "/permissions/permissionutil.inc.php");  
17 -  
18 -require_once(KT_LIB_DIR . "/dispatcher.inc.php");  
19 -$sectionName = "Manage Documents";  
20 -require_once(KT_DIR . "/presentation/webpageTemplate.inc");  
21 -  
22 -function displayFolderPathLink($aPathArray, $aPathNameArray, $sLinkPage = "") {  
23 - global $default;  
24 - if (strlen($sLinkPage) == 0) {  
25 - $sLinkPage = $_SERVER["PHP_SELF"];  
26 - }  
27 - $default->log->debug("displayFolderPathLink: slinkPage=$sLinkPage");  
28 - // display a separate link to each folder in the path  
29 - for ($i=0; $i<count($aPathArray); $i++) {  
30 - $iFolderID = $aPathArray[$i];  
31 - // retrieve the folder name for this folder  
32 - $sFolderName = $aPathNameArray[$i];  
33 - // generate a link back to this page setting fFolderID  
34 - $sLink = generateLink($sLinkPage,  
35 - "fBrowseType=folder&fFolderID=$iFolderID",  
36 - $sFolderName);  
37 - $sPathLinks = (strlen($sPathLinks) > 0) ? $sPathLinks . " > " . $sLink : $sLink;  
38 - }  
39 - return $sPathLinks;  
40 -}  
41 -  
42 -  
43 -class DocumentPermissionsDispatcher extends KTStandardDispatcher {  
44 - function do_main() {  
45 - $oTemplating = new KTTemplating;  
46 - $oTemplate = $oTemplating->loadTemplate("ktcore/document/document_permissions");  
47 - $oDocument = Document::get($_REQUEST['fDocumentID']);  
48 - $oPO = KTPermissionObject::get($oDocument->getPermissionObjectID());  
49 - $aPermissions = KTPermission::getList();  
50 - $aMapPermissionGroup = array();  
51 - foreach ($aPermissions as $oPermission) {  
52 - $oPA = KTPermissionAssignment::getByPermissionAndObject($oPermission, $oPO);  
53 - if (PEAR::isError($oPA)) {  
54 - continue;  
55 - }  
56 - $oDescriptor = KTPermissionDescriptor::get($oPA->getPermissionDescriptorID());  
57 - $iPermissionID = $oPermission->getID();  
58 - $aIDs = $oDescriptor->getGroups();  
59 - $aMapPermissionGroup[$iPermissionID] = array();  
60 - foreach ($aIDs as $iID) {  
61 - $aMapPermissionGroup[$iPermissionID][$iID] = true;  
62 - }  
63 - }  
64 - $aMapPermissionUser = array();  
65 - $aUsers = User::getList();  
66 - foreach ($aPermissions as $oPermission) {  
67 - $iPermissionID = $oPermission->getID();  
68 - foreach ($aUsers as $oUser) {  
69 - if (KTPermissionUtil::userHasPermissionOnItem($oUser, $oPermission, $oDocument)) {  
70 - $aMapPermissionUser[$iPermissionID][$oUser->getID()] = true;  
71 - }  
72 - }  
73 - }  
74 -  
75 - $oInherited = KTPermissionUtil::findRootObjectForPermissionObject($oPO);  
76 - if ($oInherited === $oDocument) {  
77 - $bEdit = true;  
78 - } else {  
79 - $iInheritedFolderID = $oInherited->getID();  
80 - $sInherited = displayFolderPathLink(Folder::getFolderPathAsArray($iInheritedFolderID),  
81 - Folder::getFolderPathNamesAsArray($iInheritedFolderID),  
82 - "$default->rootUrl/control.php?action=editFolderPermissions");  
83 - $bEdit = false;  
84 - }  
85 -  
86 - $aTemplateData = array(  
87 - "permissions" => $aPermissions,  
88 - "groups" => Group::getList(),  
89 - "iDocumentID" => $_REQUEST['fDocumentID'],  
90 - "aMapPermissionGroup" => $aMapPermissionGroup,  
91 - "users" => $aUsers,  
92 - "aMapPermissionUser" => $aMapPermissionUser,  
93 - "edit" => $bEdit,  
94 - "inherited" => $sInherited,  
95 - );  
96 - return $oTemplate->render($aTemplateData);  
97 - }  
98 -  
99 - function handleOutput($data) {  
100 - global $main;  
101 - $main->bFormDisabled = true;  
102 - $main->setCentralPayload($data);  
103 - $main->render();  
104 - }  
105 -  
106 - function do_update() {  
107 - $oDocument = Document::get($_REQUEST['fDocumentID']);  
108 - $oPO = KTPermissionObject::get($oDocument->getPermissionObjectID());  
109 - $aFoo = $_REQUEST['foo'];  
110 - $aPermissions = KTPermission::getList();  
111 - foreach ($aPermissions as $oPermission) {  
112 - $iPermID = $oPermission->getID();  
113 - $aAllowed = KTUtil::arrayGet($aFoo, $iPermID, array());  
114 - KTPermissionUtil::setPermissionForID($oPermission, $oPO, $aAllowed);  
115 - }  
116 - KTPermissionUtil::updatePermissionLookupForPO($oPO);  
117 - return $this->errorRedirectToMain('Permissions updated',  
118 - array('fDocumentID' => $oDocument->getID()));  
119 - }  
120 -  
121 - function do_copyPermissions() {  
122 - $oDocument = Document::get($_REQUEST['fDocumentID']);  
123 - KTPermissionUtil::copyPermissionObject($oDocument);  
124 - return $this->errorRedirectToMain('Permissions updated',  
125 - array('fDocumentID' => $oDocument->getID()));  
126 - }  
127 -  
128 - function do_inheritPermissions() {  
129 - $oDocument = Document::get($_REQUEST['fDocumentID']);  
130 - KTPermissionUtil::inheritPermissionObject($oDocument);  
131 - return $this->errorRedirectToMain('Permissions updated',  
132 - array('fDocumentID' => $oDocument->getID()));  
133 - }  
134 -  
135 -  
136 -}  
137 -  
138 -$oDispatcher = new DocumentPermissionsDispatcher;  
139 -$oDispatcher->dispatch();  
140 -  
141 -?>