diff --git a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php index 000d644..c8a24cb 100644 --- a/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php +++ b/presentation/lookAndFeel/knowledgeTree/foldermanagement/addFolderBL.php @@ -3,8 +3,8 @@ * Business logic page that provides business logic for adding a folder (uses * addFolderUI.inc for HTML) * -* The following form variables are exptected: -* o $fFolderID - id of the folder the user is currently in +* The following form variables are expected: +* o $fFolderID - id of the folder the user is currently in * * @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa * @date 27 January 2003 @@ -12,109 +12,116 @@ */ require_once("../../../../config/dmsDefaults.php"); -if (checkSession()) { - require_once("$default->owl_fs_root/lib/visualpatterns/PatternCustom.inc"); - - $oPatternCustom = & new PatternCustom(); - - if (isset($fFolderID)) { - require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc"); - require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc"); - require_once("$default->owl_fs_root/lib/foldermanagement/PhysicalFolderManagement.inc"); - require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); - require_once("$default->owl_fs_root/presentation/Html.inc"); - require_once("addFolderUI.inc"); - - if (!isset($fFolderName)) { - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); - //we're still browsing - if (Permission::userHasFolderWritePermission($fFolderID)) { - //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"); - } - $main->setCentralPayload($oPatternCustom); - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); - $main->setHasRequiredFields(true); - $main->render(); - } else { - //have a folder name to store - if (Permission::userHasFolderWritePermission($fFolderID)) { - //check for illegal characters in the folder name - if (strpos($fFolderName, "\\") === false && strpos($fFolderName, ">") === false && - strpos($fFolderName, "<") === false && strpos($fFolderName, ":") === false && - strpos($fFolderName, "*") === false && strpos($fFolderName, "?") === false && - strpos($fFolderName, "|") === false && strpos($fFolderName, "/") === false && - strpos($fFolderName, "\"") === false) { - if (Folder::folderExistsName($fFolderName, $fFolderID)) { - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); - $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); - $main->setCentralPayload($oPatternCustom); - $main->setErrorMessage("There is another folder named $fFolderName in this folder already"); - $main->setHasRequiredFields(true); - $main->setFormAction("addFolderBL.php?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->getDocumentTypeID(), $oParentFolder->getUnitID()); - if ($oFolder->create()) { - //create the folder on the file system - if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) { - redirect("$default->owl_root_url/control.php?action=editFolder&fFolderID=" . $oFolder->getID()); - } else { - //if we couldn't do that, remove the folder from the db and report and error - $oFolder->delete(); - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); - $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); - $main->setCentralPayload($oPatternCustom); - $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem"); - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); - $main->setHasRequiredFields(true); - $main->render(); - } - } else { - //if we couldn't create the folder in the db, report an error - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); - $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); - $main->setCentralPayload($oPatternCustom); - $main->setErrorMessage("There was an error creating the folder $fFolderName in the database"); - $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); - $main->render(); - } - } - } else { - //the user entered an illegal character in the folder name - require_once("$default->owl_fs_root/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("addFolderBL.php?fFolderID=$fFolderID"); - $main->render(); - } - - } else { - //if the user doesn't have write permission for this folder, - //give them only browse facilities - require_once("$default->owl_fs_root/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("addFolderBL.php?fFolderID=$fFolderID"); - $main->render(); - } - } - } else { - require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); - $oPatternCustom->setHtml(""); - $main->setCentralPayload($oPatternCustom); - $main->setErrorMessage("No folder currently selected"); - $main->render(); - } +if (checkSession()) { + require_once("$default->owl_fs_root/lib/visualpatterns/PatternCustom.inc"); + + $oPatternCustom = & new PatternCustom(); + + if (isset($fFolderID)) { + require_once("$default->owl_fs_root/lib/visualpatterns/PatternTableSqlQuery.inc"); + require_once("$default->owl_fs_root/lib/foldermanagement/Folder.inc"); + require_once("$default->owl_fs_root/lib/foldermanagement/PhysicalFolderManagement.inc"); + require_once("$default->owl_fs_root/lib/subscriptions/SubscriptionEngine.inc"); + require_once("$default->owl_fs_root/presentation/lookAndFeel/knowledgeTree/foldermanagement/folderUI.inc"); + require_once("$default->owl_fs_root/presentation/Html.inc"); + require_once("addFolderUI.inc"); + + if (!isset($fFolderName)) { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + //we're still browsing + if (Permission::userHasFolderWritePermission($fFolderID)) { + //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"); + } + $main->setCentralPayload($oPatternCustom); + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); + $main->setHasRequiredFields(true); + $main->render(); + } else { + //have a folder name to store + if (Permission::userHasFolderWritePermission($fFolderID)) { + //check for illegal characters in the folder name + if (strpos($fFolderName, "\\") === false && strpos($fFolderName, ">") === false && + strpos($fFolderName, "<") === false && strpos($fFolderName, ":") === false && + strpos($fFolderName, "*") === false && strpos($fFolderName, "?") === false && + strpos($fFolderName, "|") === false && strpos($fFolderName, "/") === false && + strpos($fFolderName, "\"") === false) { + if (Folder::folderExistsName($fFolderName, $fFolderID)) { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(renderBrowseAddPage($fFolderID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("There is another folder named $fFolderName in this folder already"); + $main->setHasRequiredFields(true); + $main->setFormAction("addFolderBL.php?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->getDocumentTypeID(), $oParentFolder->getUnitID()); + if ($oFolder->create()) { + //create the folder on the file system + if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) { + // 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->owl_root_url/control.php?action=editFolder&fFolderID=" . $oFolder->getID()); + } else { + //if we couldn't do that, remove the folder from the db and report and error + $oFolder->delete(); + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("There was an error creating the folder $fFolderName on the filesystem"); + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); + $main->setHasRequiredFields(true); + $main->render(); + } + } else { + //if we couldn't create the folder in the db, report an error + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(renderBrowsePage($fFolderID)); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("There was an error creating the folder $fFolderName in the database"); + $main->setFormAction("addFolderBL.php?fFolderID=$fFolderID"); + $main->render(); + } + } + } else { + //the user entered an illegal character in the folder name + require_once("$default->owl_fs_root/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("addFolderBL.php?fFolderID=$fFolderID"); + $main->render(); + } + + } else { + //if the user doesn't have write permission for this folder, + //give them only browse facilities + require_once("$default->owl_fs_root/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("addFolderBL.php?fFolderID=$fFolderID"); + $main->render(); + } + } + } else { + require_once("$default->owl_fs_root/presentation/webpageTemplate.inc"); + $oPatternCustom->setHtml(""); + $main->setCentralPayload($oPatternCustom); + $main->setErrorMessage("No folder currently selected"); + $main->render(); + } } ?>