fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListFromQuery.inc");
require_once("editUI.inc");
require_once("$default->fileSystemRoot/lib/security/Permission.inc");
require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
require_once("$default->fileSystemRoot/presentation/Html.inc");
require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
$oPatternCustom = & new PatternCustom();
if (!isset($fFolderID)) {
$oPatternCustom->setHtml("
\n");
$main->setErrorMessage(_("No folder currently selected"));
$main->setCentralPayload($oPatternCustom);
$main->render();
exit(0);
}
$oFolder = Folder::get($fFolderID);
if (!$oFolder) {
// folder doesn't exist
$oPatternCustom->setHtml("
\n");
$main->setErrorMessage(_("The folder you're trying to modify does not exist in the DMS"));
$main->setCentralPayload($oPatternCustom);
$main->render();
exit(0);
}
if (!isset($fInheritedFolderID)) {
//else display an error message
$oPatternCustom->setHtml("
\n");
$main->setErrorMessage(_("No inherited folder given"));
$main->setCentralPayload($oPatternCustom);
$main->render();
exit(0);
}
$oInheritedFolder = Folder::get($fInheritedFolderID);
if (!$oInheritedFolder) {
//else display an error message
$oPatternCustom->setHtml("
\n");
$main->setErrorMessage(_("The inherited folder given does not exist in the DMS"));
$main->setCentralPayload($oPatternCustom);
$main->render();
exit(0);
}
//if the user can edit the folder
if (!Permission::userHasFolderWritePermission($oFolder)) {
//user does not have write permission for this folder,
$oPatternCustom->setHtml("
\n");
$main->setErrorMessage(_("You do not have permission to edit this folder"));
$main->setCentralPayload($oPatternCustom);
$main->render();
exit(0);
}
$sQuery = DBUtil::compactQuery("
SELECT
GFL.group_id AS group_id,
GFL.can_read AS can_read,
GFL.can_write AS can_write
FROM
$default->groups_folders_table AS GFL
WHERE GFL.folder_id = ?");
$aParams = array($fInheritedFolderID);
$aPermissions = DBUtil::getResultArray(array($sQuery, $aParams));
if (PEAR::isError($aPermissions)) {
$oPatternCustom->setHtml("
\n");
$main->setErrorMessage(_("Error retrieving folder permissions"));
$main->setCentralPayload($oPatternCustom);
$main->render();
exit(0);
}
foreach ($aPermissions as $aRow) {
$aRow['folder_id'] = $fFolderID;
$res = DBUtil::autoInsert($default->groups_folders_table, $aRow);
if (PEAR::isError($res)) {
$oPatternCustom->setHtml("
\n");
$main->setErrorMessage(_("Error saving folder permissions"));
$main->setCentralPayload($oPatternCustom);
$main->render();
exit(0);
}
}
$oFolder->updatePermissions();
controllerRedirect("editFolder", "fFolderID=$fFolderID&fShowSection=folderPermissions");
?>