diff --git a/plugins/ktcore/KTPermissions.php b/plugins/ktcore/KTPermissions.php index a45769b..6a9dcda 100644 --- a/plugins/ktcore/KTPermissions.php +++ b/plugins/ktcore/KTPermissions.php @@ -1,9 +1,77 @@ oValidator->validateTemplate("ktcore/document/document_permissions"); + $oPO = KTPermissionObject::get($this->oDocument->getPermissionObjectID()); + $aPermissions = KTPermission::getList(); + $aMapPermissionGroup = array(); + foreach ($aPermissions as $oPermission) { + $oPA = KTPermissionAssignment::getByPermissionAndObject($oPermission, $oPO); + if (PEAR::isError($oPA)) { + continue; + } + $oDescriptor = KTPermissionDescriptor::get($oPA->getPermissionDescriptorID()); + $iPermissionID = $oPermission->getID(); + $aIDs = $oDescriptor->getGroups(); + $aMapPermissionGroup[$iPermissionID] = array(); + foreach ($aIDs as $iID) { + $aMapPermissionGroup[$iPermissionID][$iID] = true; + } + } + $aMapPermissionUser = array(); + $aUsers = User::getList(); + foreach ($aPermissions as $oPermission) { + $iPermissionID = $oPermission->getID(); + foreach ($aUsers as $oUser) { + if (KTPermissionUtil::userHasPermissionOnItem($oUser, $oPermission, $this->oDocument)) { + $aMapPermissionUser[$iPermissionID][$oUser->getID()] = true; + } + } + } + + $oInherited = KTPermissionUtil::findRootObjectForPermissionObject($oPO); + if ($oInherited === $this->oDocument) { + $bEdit = true; + } else { + $iInheritedFolderID = $oInherited->getID(); + /* $sInherited = displayFolderPathLink(Folder::getFolderPathAsArray($iInheritedFolderID), + Folder::getFolderPathNamesAsArray($iInheritedFolderID), + "$default->rootUrl/control.php?action=editFolderPermissions");*/ + $sInherited = join(" » ", $oInherited->getPathArray()); + $bEdit = false; + } + + $aTemplateData = array( + "permissions" => $aPermissions, + "groups" => Group::getList(), + "iDocumentID" => $_REQUEST['fDocumentID'], + "aMapPermissionGroup" => $aMapPermissionGroup, + "users" => $aUsers, + "aMapPermissionUser" => $aMapPermissionUser, + "edit" => $bEdit, + "inherited" => $sInherited, + ); + return $oTemplate->render($aTemplateData); + } } $oKTActionRegistry->registerAction('documentaction', 'KTDocumentPermissionsAction', 'ktcore.actions.document.permissions'); diff --git a/presentation/lookAndFeel/knowledgeTree/documentmanagement/documentPermissions.php b/presentation/lookAndFeel/knowledgeTree/documentmanagement/documentPermissions.php deleted file mode 100644 index 727af45..0000000 --- a/presentation/lookAndFeel/knowledgeTree/documentmanagement/documentPermissions.php +++ /dev/null @@ -1,141 +0,0 @@ -log->debug("displayFolderPathLink: slinkPage=$sLinkPage"); - // display a separate link to each folder in the path - for ($i=0; $i 0) ? $sPathLinks . " > " . $sLink : $sLink; - } - return $sPathLinks; -} - - -class DocumentPermissionsDispatcher extends KTStandardDispatcher { - function do_main() { - $oTemplating = new KTTemplating; - $oTemplate = $oTemplating->loadTemplate("ktcore/document/document_permissions"); - $oDocument = Document::get($_REQUEST['fDocumentID']); - $oPO = KTPermissionObject::get($oDocument->getPermissionObjectID()); - $aPermissions = KTPermission::getList(); - $aMapPermissionGroup = array(); - foreach ($aPermissions as $oPermission) { - $oPA = KTPermissionAssignment::getByPermissionAndObject($oPermission, $oPO); - if (PEAR::isError($oPA)) { - continue; - } - $oDescriptor = KTPermissionDescriptor::get($oPA->getPermissionDescriptorID()); - $iPermissionID = $oPermission->getID(); - $aIDs = $oDescriptor->getGroups(); - $aMapPermissionGroup[$iPermissionID] = array(); - foreach ($aIDs as $iID) { - $aMapPermissionGroup[$iPermissionID][$iID] = true; - } - } - $aMapPermissionUser = array(); - $aUsers = User::getList(); - foreach ($aPermissions as $oPermission) { - $iPermissionID = $oPermission->getID(); - foreach ($aUsers as $oUser) { - if (KTPermissionUtil::userHasPermissionOnItem($oUser, $oPermission, $oDocument)) { - $aMapPermissionUser[$iPermissionID][$oUser->getID()] = true; - } - } - } - - $oInherited = KTPermissionUtil::findRootObjectForPermissionObject($oPO); - if ($oInherited === $oDocument) { - $bEdit = true; - } else { - $iInheritedFolderID = $oInherited->getID(); - $sInherited = displayFolderPathLink(Folder::getFolderPathAsArray($iInheritedFolderID), - Folder::getFolderPathNamesAsArray($iInheritedFolderID), - "$default->rootUrl/control.php?action=editFolderPermissions"); - $bEdit = false; - } - - $aTemplateData = array( - "permissions" => $aPermissions, - "groups" => Group::getList(), - "iDocumentID" => $_REQUEST['fDocumentID'], - "aMapPermissionGroup" => $aMapPermissionGroup, - "users" => $aUsers, - "aMapPermissionUser" => $aMapPermissionUser, - "edit" => $bEdit, - "inherited" => $sInherited, - ); - return $oTemplate->render($aTemplateData); - } - - function handleOutput($data) { - global $main; - $main->bFormDisabled = true; - $main->setCentralPayload($data); - $main->render(); - } - - function do_update() { - $oDocument = Document::get($_REQUEST['fDocumentID']); - $oPO = KTPermissionObject::get($oDocument->getPermissionObjectID()); - $aFoo = $_REQUEST['foo']; - $aPermissions = KTPermission::getList(); - foreach ($aPermissions as $oPermission) { - $iPermID = $oPermission->getID(); - $aAllowed = KTUtil::arrayGet($aFoo, $iPermID, array()); - KTPermissionUtil::setPermissionForID($oPermission, $oPO, $aAllowed); - } - KTPermissionUtil::updatePermissionLookupForPO($oPO); - return $this->errorRedirectToMain('Permissions updated', - array('fDocumentID' => $oDocument->getID())); - } - - function do_copyPermissions() { - $oDocument = Document::get($_REQUEST['fDocumentID']); - KTPermissionUtil::copyPermissionObject($oDocument); - return $this->errorRedirectToMain('Permissions updated', - array('fDocumentID' => $oDocument->getID())); - } - - function do_inheritPermissions() { - $oDocument = Document::get($_REQUEST['fDocumentID']); - KTPermissionUtil::inheritPermissionObject($oDocument); - return $this->errorRedirectToMain('Permissions updated', - array('fDocumentID' => $oDocument->getID())); - } - - -} - -$oDispatcher = new DocumentPermissionsDispatcher; -$oDispatcher->dispatch(); - -?>