diff --git a/config/siteMap.inc b/config/siteMap.inc
index bc38a7f..2614dbe 100644
--- a/config/siteMap.inc
+++ b/config/siteMap.inc
@@ -60,6 +60,7 @@ $default->siteMap->addPage("addFolder", "/presentation/lookAndFeel/knowledgeTree
$default->siteMap->addPage("addFolderDocType", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderDocTypeBL.php", "Manage Documents", User, "");
$default->siteMap->addPage("deleteFolderDocType", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/deleteFolderDocTypeBL.php", "Manage Documents", User, "");
$default->siteMap->addPage("editFolder", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/editBL.php", "Manage Documents", User, _("Modify Folder Properties"));
+$default->siteMap->addPage("copyFolderPermissions", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/copyInheritedPermissionsBL.php", "Manage Documents", User, _("Copy Inherited Folder Permissions"), false);
$default->siteMap->addPage("modifyFolderData", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/modifyFolderDataBL.php", "Manage Documents", User, "Modify Folder Data", false);
$default->siteMap->addPage("deleteFolder", "/presentation/lookAndFeel/knowledgeTree/foldermanagement/deleteFolderBL.php", "Manage Documents", User, _("Delete Current Folder"));
diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/copyInheritedPermissionsBL.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/copyInheritedPermissionsBL.php
new file mode 100644
index 0000000..564295f
--- /dev/null
+++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/copyInheritedPermissionsBL.php
@@ -0,0 +1,132 @@
+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);
+ }
+}
+
+controllerRedirect("editFolder", "fFolderID=$fFolderID&fShowSection=folderPermissions");
+
+?>
diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
index ebf7f13..8a152d0 100644
--- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
+++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/editUI.inc
@@ -180,7 +180,9 @@ function getFolderGroupAccess($iFolderID, $sDivName) {
$sToRender .= '