Commit 6538fd89e77997aac608716760dd184ee0f21826
1 parent
26eec61e
(#2760) check if the unit root folder exists before creating it
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2398 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
27 additions
and
8 deletions
lib/foldermanagement/Folder.inc
| ... | ... | @@ -397,6 +397,21 @@ class Folder { |
| 397 | 397 | $_SESSION["errorMessage"] = $lang_err_object_not_exist . "id = " . $iFolderID . " table = folders"; |
| 398 | 398 | return false; |
| 399 | 399 | } |
| 400 | + | |
| 401 | + /** | |
| 402 | + * Checks if a folder with the same name, description and parent exists in the database already | |
| 403 | + */ | |
| 404 | + function exists() { | |
| 405 | + global $default; | |
| 406 | + $sql = $default->db; | |
| 407 | + $sql->query("SELECT id FROM $default->owl_folders_table WHERE name='" . $this->sName . "' " . | |
| 408 | + "AND description = '" . $this->sDescription . "' AND parent_id=$this->iParentID"); | |
| 409 | + if ($sql->next_record()) { | |
| 410 | + return true; | |
| 411 | + } else { | |
| 412 | + return false; | |
| 413 | + } | |
| 414 | + } | |
| 400 | 415 | |
| 401 | 416 | /** |
| 402 | 417 | * Static function | ... | ... |
lib/unitmanagement/Unit.inc
| ... | ... | @@ -78,16 +78,20 @@ class Unit { |
| 78 | 78 | $this->iId = $sql->insert_id(); |
| 79 | 79 | // create a new unit root folder |
| 80 | 80 | // FIXME: lookup the organisation for this unit and use the appropriate folder id for the org root folder |
| 81 | - // TODO: check if a folder with this name exists before creating it | |
| 82 | 81 | $oFolder = new Folder($this->sName, $this->sName . " Unit Root Folder", 1, $_SESSION["userID"], $this->iId); |
| 83 | - if ($oFolder->create()) { | |
| 84 | - if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) { | |
| 85 | - return true; | |
| 86 | - } else { | |
| 87 | - return false; | |
| 88 | - } | |
| 82 | + if (!$oFolder->exists()) { | |
| 83 | + if ($oFolder->create()) { | |
| 84 | + if (PhysicalFolderManagement::createFolder(Folder::getFolderPath($oFolder->getID()))) { | |
| 85 | + return true; | |
| 86 | + } else { | |
| 87 | + return false; | |
| 88 | + } | |
| 89 | + } else { | |
| 90 | + return false; | |
| 91 | + } | |
| 89 | 92 | } else { |
| 90 | - return false; | |
| 93 | + // a unit root folder already exists in the database | |
| 94 | + return true; | |
| 91 | 95 | } |
| 92 | 96 | } |
| 93 | 97 | $_SESSION["errorMessage"] = $lang_err_database; | ... | ... |