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(); ?>