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 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 18 var $sBuiltInAction = 'editDocumentPermissions';
5 19 var $sDisplayName = 'Permissions';
6 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 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   -?>