diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php
index a5f37b8..9d2b175 100644
--- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php
+++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php
@@ -35,160 +35,164 @@ KTUtil::extractGPC('fDocumentTypeID', 'fFolderID', 'fFolderName');
require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
-if (checkSession()) {
- require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
-
- $oPatternCustom = & new PatternCustom();
-
- if (isset($fFolderID)) {
- //initialse a folder object
- $oFolder = Folder::get($fFolderID);
- require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc");
- require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
- require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
- require_once("$default->fileSystemRoot/lib/foldermanagement/FolderDocTypeLink.inc");
- require_once("$default->fileSystemRoot/lib/foldermanagement/PhysicalFolderManagement.inc");
- require_once("$default->fileSystemRoot/lib/subscriptions/SubscriptionEngine.inc");
- require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
- require_once("$default->fileSystemRoot/presentation/Html.inc");
- require_once("addFolderUI.inc");
-
- if (!isset($fFolderName)) {
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- //we're still browsing
-
- if (Permission::userHasFolderWritePermission($oFolder)) {
- //if the user is allowed to add folders, then display the add button
- $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
- } else {
- //otherwise just let the user browse
- $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
- $main->setErrorMessage(_("You do not have permission to create new folders in this folder") . "
rootUrl/control.php?action=browse&fFolderID=$fFolderID\"> ");
- }
- $main->setCentralPayload($oPatternCustom);
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
- $main->setHasRequiredFields(true);
- $main->render();
- } else {
- // a document type has been specified
- if (isset($fDocumentTypeID)) {
- //have a folder name to store
- if (Permission::userHasFolderWritePermission($oFolder)) {
- //check for illegal characters in the folder name
-
- // strip slashes from the already EPGCS escaped form input
- $sCheckFolderName = stripslashes($fFolderName);
- if (strpos($sCheckFolderName, "\\") === false && strpos($sCheckFolderName, ">") === false &&
- strpos($sCheckFolderName, "<") === false && strpos($sCheckFolderName, ":") === false &&
- strpos($sCheckFolderName, "*") === false && strpos($sCheckFolderName, "?") === false &&
- strpos($sCheckFolderName, "|") === false && strpos($sCheckFolderName, "/") === false &&
- strpos($sCheckFolderName, "\"") === false) {
-
- if (Folder::folderExistsName($fFolderName, $fFolderID)) {
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
- $main->setCentralPayload($oPatternCustom);
- $main->setErrorMessage(sprintf(_("There is another folder named %s in this folder already"), $fFolderName));
- $main->setHasRequiredFields(true);
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
- $main->render();
- } else {
- $oParentFolder = Folder::get($fFolderID);
- //create the folder in the db, giving it the properties of it's parent folder
- $oFolder = & new Folder($fFolderName, "", $fFolderID, $_SESSION["userID"], $oParentFolder->getUnitID());
- if ($oFolder->create()) {
- $oFolderDocTypeLink = & new FolderDocTypeLink($oFolder->getID(), $fDocumentTypeID);
- if ($oFolderDocTypeLink->create()) {
- //create the folder on the file system
- if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) {
- $default->log->info("addFolderBL.php successfully added folder $fFolderName to parent folder " . Folder::getFolderPath($fFolderID) . " id=$fFolderID");
-
- // fire subscription alerts for the new folder
- $count = SubscriptionEngine::fireSubscription($oParentFolder->getID(), SubscriptionConstants::subscriptionAlertType("AddFolder"),
- SubscriptionConstants::subscriptionType("FolderSubscription"),
- array( "newFolderName" => $fFolderName,
- "parentFolderName" => $oParentFolder->getName()) );
- $default->log->info("addFolderBL.php fired $count subscription alerts for new folder $fFolderName");
- redirect("$default->rootUrl/control.php?action=editFolder&fFolderID=" . $oFolder->getID());
- } else {
- //if we couldn't do that
- $default->log->error("addFolderBL.php Filesystem error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID");
-
- // remove the folder and its doc type link from the db and report and error
- $oFolderDocTypeLink->delete();
- $oFolder->delete();
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
- $main->setCentralPayload($oPatternCustom);
- $main->setErrorMessage(sprintf(_("There was an error creating the folder %s on the filesystem"), $fFolderName));
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
- $main->setHasRequiredFields(true);
- $main->render();
- }
- } else {
- //couldn't associate the chosen document type with this folder
- $default->log->error("addFolderBL.php DB error storing folder-document type link for folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' folderID=$fFolderID; docTypeID=$fDocumentTypeID");
-
- //remove the folder from the database
- $oFolder->delete();
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
- $main->setCentralPayload($oPatternCustom);
- $main->setErrorMessage(sprintf(_("There was an error creating the folder %s on the filesystem"), $fFolderName));
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
- $main->setHasRequiredFields(true);
- $main->render();
- }
- } else {
- //if we couldn't create the folder in the db, report an error
- $default->log->error("addFolderBL.php DB error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID");
-
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
- $main->setCentralPayload($oPatternCustom);
- $main->setErrorMessage(sprintf(_("There was an error creating the folder %s in the database"), $fFolderName));
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
- $main->render();
- }
- }
- } else {
- //the user entered an illegal character in the folder name
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
- $main->setCentralPayload($oPatternCustom);
- $main->setErrorMessage(_("Folder not created. Folder names may not contain: '<', '>', '*', '/', '\', '|', '?' or '\"' "));
- $main->setHasRequiredFields(true);
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
- $main->render();
- }
-
- } else {
- //if the user doesn't have write permission for this folder,
- //give them only browse facilities
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
- $main->setCentralPayload($oPatternCustom);
- $main->setErrorMessage(_("You do not have permission to create new folders in this folder"));
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
- $main->render();
- }
- } else {
- //there are no document type assigned to this folder
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
- $main->setCentralPayload($oPatternCustom);
- $main->setErrorMessage(_("You did not specify a document type. If there are no system document types, please contact a System Administrator."));
- $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
- $main->render();
- }
- }
- } else {
- require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
- $oPatternCustom->setHtml("");
- $main->setCentralPayload($oPatternCustom);
- $main->setErrorMessage(_("No folder currently selected"));
- $main->render();
- }
+if (!checkSession()) {
+ // Doesn't return anyway. Just in case...
+ exit(0);
}
+require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
+
+$oPatternCustom = & new PatternCustom();
+
+if (!isset($fFolderID)) {
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom->setHtml("");
+ $main->setCentralPayload($oPatternCustom);
+ $main->setErrorMessage(_("No folder currently selected"));
+ $main->render();
+ exit(0);
+}
+
+//initialse a folder object
+$oFolder = Folder::get($fFolderID);
+require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc");
+require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
+require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
+require_once("$default->fileSystemRoot/lib/foldermanagement/FolderDocTypeLink.inc");
+require_once("$default->fileSystemRoot/lib/foldermanagement/PhysicalFolderManagement.inc");
+require_once("$default->fileSystemRoot/lib/subscriptions/SubscriptionEngine.inc");
+require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc");
+require_once("$default->fileSystemRoot/presentation/Html.inc");
+require_once("addFolderUI.inc");
+
+if (!Permission::userHasFolderWritePermission($oFolder)) {
+ //if the user doesn't have write permission for this folder,
+ //give them only browse facilities
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
+ $main->setCentralPayload($oPatternCustom);
+ $main->setErrorMessage(_("You do not have permission to create new folders in this folder"));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
+ $main->render();
+ exit(0);
+}
+
+
+if (!isset($fFolderName)) {
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+
+ $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
+ $main->setCentralPayload($oPatternCustom);
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
+ $main->setHasRequiredFields(true);
+ $main->render();
+ exit(0);
+}
+
+// a document type has been specified
+if (!isset($fDocumentTypeID)) {
+ //there are no document type assigned to this folder
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
+ $main->setCentralPayload($oPatternCustom);
+ $main->setErrorMessage(_("You did not specify a document type. If there are no system document types, please contact a System Administrator."));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
+ $main->render();
+ exit(0);
+}
+
+//check for illegal characters in the folder name
+
+// strip slashes from the already EPGCS escaped form input
+$sCheckFolderName = stripslashes($fFolderName);
+if (!(strpos($sCheckFolderName, "\\") === false && strpos($sCheckFolderName, ">") === false &&
+ strpos($sCheckFolderName, "<") === false && strpos($sCheckFolderName, ":") === false &&
+ strpos($sCheckFolderName, "*") === false && strpos($sCheckFolderName, "?") === false &&
+ strpos($sCheckFolderName, "|") === false && strpos($sCheckFolderName, "/") === false &&
+ strpos($sCheckFolderName, "\"") === false)) {
+ //the user entered an illegal character in the folder name
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
+ $main->setCentralPayload($oPatternCustom);
+ $main->setErrorMessage(_("Folder not created. Folder names may not contain: '<', '>', '*', '/', '\', '|', '?' or '\"' "));
+ $main->setHasRequiredFields(true);
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
+ $main->render();
+ exit(0);
+}
+
+if (Folder::folderExistsName($fFolderName, $fFolderID)) {
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID));
+ $main->setCentralPayload($oPatternCustom);
+ $main->setErrorMessage(sprintf(_("There is another folder named %s in this folder already"), $fFolderName));
+ $main->setHasRequiredFields(true);
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
+ $main->render();
+ exit(0);
+}
+
+$oParentFolder = Folder::get($fFolderID);
+//create the folder in the db, giving it the properties of it's parent folder
+$oFolder = & new Folder($fFolderName, "", $fFolderID, $_SESSION["userID"], $oParentFolder->getUnitID());
+
+if (!$oFolder->create()) {
+ //if we couldn't create the folder in the db, report an error
+ $default->log->error("addFolderBL.php DB error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID");
+
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
+ $main->setCentralPayload($oPatternCustom);
+ $main->setErrorMessage(sprintf(_("There was an error creating the folder %s in the database"), $fFolderName));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
+ $main->render();
+ exit(0);
+}
+
+
+$oFolderDocTypeLink = & new FolderDocTypeLink($oFolder->getID(), $fDocumentTypeID);
+if (!$oFolderDocTypeLink->create()) {
+ //couldn't associate the chosen document type with this folder
+ $default->log->error("addFolderBL.php DB error storing folder-document type link for folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' folderID=$fFolderID; docTypeID=$fDocumentTypeID");
+
+ //remove the folder from the database
+ $oFolder->delete();
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
+ $main->setCentralPayload($oPatternCustom);
+ $main->setErrorMessage(sprintf(_("There was an error creating the folder %s on the filesystem"), $fFolderName));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
+ $main->setHasRequiredFields(true);
+ $main->render();
+ exit(0);
+}
+
+//create the folder on the file system
+if (!PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) {
+ //if we couldn't do that
+ $default->log->error("addFolderBL.php Filesystem error attempting to store folder name=$fFolderName in parent folder '" . Folder::getFolderPath($fFolderID) . "' id=$fFolderID");
+
+ // remove the folder and its doc type link from the db and report and error
+ $oFolderDocTypeLink->delete();
+ $oFolder->delete();
+ require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
+ $oPatternCustom->setHtml(renderBrowsePage($fFolderID));
+ $main->setCentralPayload($oPatternCustom);
+ $main->setErrorMessage(sprintf(_("There was an error creating the folder %s on the filesystem"), $fFolderName));
+ $main->setFormAction($_SERVER["PHP_SELF"] . "?fFolderID=$fFolderID");
+ $main->setHasRequiredFields(true);
+ $main->render();
+ exit(0);
+}
+
+$default->log->info("addFolderBL.php successfully added folder $fFolderName to parent folder " . Folder::getFolderPath($fFolderID) . " id=$fFolderID");
+
+// fire subscription alerts for the new folder
+$count = SubscriptionEngine::fireSubscription($oParentFolder->getID(), SubscriptionConstants::subscriptionAlertType("AddFolder"),
+ SubscriptionConstants::subscriptionType("FolderSubscription"),
+ array( "newFolderName" => $fFolderName,
+ "parentFolderName" => $oParentFolder->getName()) );
+$default->log->info("addFolderBL.php fired $count subscription alerts for new folder $fFolderName");
+redirect("$default->rootUrl/control.php?action=editFolder&fFolderID=" . $oFolder->getID());
+
?>
|