diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderPermissions.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderPermissions.php new file mode 100644 index 0000000..4076b5c --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderPermissions.php @@ -0,0 +1,141 @@ +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 FolderPermissions extends KTStandardDispatcher { + function do_main() { + $oTemplating = new KTTemplating; + $oTemplate = $oTemplating->loadTemplate("ktcore/manage_folder_permissions"); + $oFolder = Folder::get($_REQUEST['fFolderID']); + $oPO = KTPermissionObject::get($oFolder->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, $oFolder)) { + $aMapPermissionUser[$iPermissionID][$oUser->getID()] = true; + } + } + } + + $oInherited = KTPermissionUtil::findRootObjectForPermissionObject($oPO); + if ($oInherited === $oFolder) { + $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(), + "iFolderID" => $_REQUEST['fFolderID'], + "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() { + $oFolder = Folder::get($_REQUEST['fFolderID']); + $oPO = KTPermissionObject::get($oFolder->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('fFolderID' => $oFolder->getID())); + } + + function do_copyPermissions() { + $oFolder = Folder::get($_REQUEST['fFolderID']); + KTPermissionUtil::copyPermissionObject($oFolder); + return $this->errorRedirectToMain('Permissions updated', + array('fFolderID' => $oFolder->getID())); + } + + function do_inheritPermissions() { + $oFolder = Folder::get($_REQUEST['fFolderID']); + KTPermissionUtil::inheritPermissionObject($oFolder); + return $this->errorRedirectToMain('Permissions updated', + array('fFolderID' => $oFolder->getID())); + } + + +} + +$oDispatcher = new FolderPermissions; +$oDispatcher->dispatch(); + +?>