Browse Source

Minor - fix work directory creation

jmontoyaa 6 years ago
parent
commit
8a946879ec
1 changed files with 15 additions and 16 deletions
  1. 15 16
      main/work/work.lib.php

+ 15 - 16
main/work/work.lib.php

@@ -748,25 +748,23 @@ function build_work_move_to_selector($folders, $curdirpath, $move_file, $group_d
  * @author Bert Vanderkimpen
  * @author Yannick Warnier <ywarnier@beeznest.org> Adaptation for work tool
  *
- * @param string $base_work_dir  Base work dir (.../work)
+ * @param string $workDir        Base work dir (.../work)
  * @param string $desiredDirName complete path of the desired name
  *
  * @return string actual directory name if it succeeds, boolean false otherwise
  */
-function create_unexisting_work_directory($base_work_dir, $desiredDirName)
+function create_unexisting_work_directory($workDir, $desiredDirName)
 {
-    $nb = 0;
-    $base_work_dir = (substr($base_work_dir, -1, 1) == '/' ? $base_work_dir : $base_work_dir.'/');
-    while (file_exists($base_work_dir.$desiredDirName.$nb)) {
-        $nb += 1;
+    $counter = 0;
+    $workDir = (substr($workDir, -1, 1) == '/' ? $workDir : $workDir.'/');
+    $checkDirName = $desiredDirName;
+    while (file_exists($workDir.$checkDirName)) {
+        $counter += 1;
+        $checkDirName = $desiredDirName.$counter;
     }
 
-    if (empty($nb)) {
-        $nb = '';
-    }
-
-    if (@mkdir($base_work_dir.$desiredDirName.$nb, api_get_permissions_for_new_directories())) {
-        return $desiredDirName.$nb;
+    if (@mkdir($workDir.$checkDirName, api_get_permissions_for_new_directories())) {
+        return $checkDirName;
     } else {
         return false;
     }
@@ -4073,8 +4071,9 @@ function addDir($formValues, $user_id, $courseInfo, $groupId, $sessionId = 0)
 {
     $em = Database::getManager();
 
-    $user_id = intval($user_id);
-    $groupId = intval($groupId);
+    $user_id = (int) $user_id;
+    $groupId = (int) $groupId;
+    $sessionId = (int) $sessionId;
 
     $groupIid = 0;
     $groupInfo = [];
@@ -4082,7 +4081,6 @@ function addDir($formValues, $user_id, $courseInfo, $groupId, $sessionId = 0)
         $groupInfo = GroupManager::get_group_properties($groupId);
         $groupIid = $groupInfo['iid'];
     }
-    $sessionId = (int) $sessionId;
     $session = $em->find('ChamiloCoreBundle:Session', $sessionId);
 
     $base_work_dir = api_get_path(SYS_COURSE_PATH).$courseInfo['path'].'/work';
@@ -4090,8 +4088,9 @@ function addDir($formValues, $user_id, $courseInfo, $groupId, $sessionId = 0)
 
     $directory = api_replace_dangerous_char($formValues['new_dir']);
     $directory = disable_dangerous_file($directory);
-    $created_dir = create_unexisting_work_directory($base_work_dir, $directory);
 
+    $created_dir = create_unexisting_work_directory($base_work_dir, $directory);
+    var_dump($created_dir);
     if (empty($created_dir)) {
         return false;
     }