Esempio n. 1
0
 /**
  * @see ProjectInterface::get_sub_folder()
  * @param integer $folder_id Folder-ID
  * @param integer $gid 
  * @param integer $status_id
  * @return string Sub-Folder-Path
  */
 public function get_sub_folder($gid, $status_id)
 {
     if ($this->project_id and $this->project) {
         if (is_numeric($gid) and is_numeric($status_id)) {
             $folder_id = ProjectStatusFolder::get_folder_by_project_id_and_project_status_id($this->project_id, $status_id);
             $folder = Folder::get_instance($folder_id);
             $project_template = new ProjectTemplate($this->project->get_template_id());
             $attribute_array = $project_template->get_gid_attributes($gid, $status_id);
             if ($attribute_array['folder']) {
                 $folder_name = strtolower(trim($attribute_array['folder']));
                 $folder_name = str_replace(" ", "-", $folder_name);
                 $folder_path = new Path($folder->get_path());
                 $folder_path->add_element($folder_name);
                 return Folder::get_folder_by_path($folder_path->get_path_string());
             } else {
                 return null;
             }
         } else {
             return null;
         }
     } else {
         return null;
     }
 }
Esempio n. 2
0
 /**
  * @param integer $folder_id
  * @param string $folder_name
  * @return string
  * @throws DataSecurityAccessDeniedException
  */
 private static function add_folder($folder_id, $folder_name)
 {
     global $session;
     $internal_name = trim(strtolower(str_replace(" ", "_", $folder_name)));
     $base_folder = Folder::get_instance($folder_id);
     if ($base_folder->can_add_folder()) {
         $path = new Path($base_folder->get_path());
         $path->add_element($internal_name);
         $folder = Folder::get_instance(null);
         if (($folder_id = $folder->create($folder_name, $folder_id, $path->get_path_string(), $session->get_user_id(), null)) == null) {
             return "1";
         } else {
             return "0";
         }
     } else {
         throw new DataSecurityAccessDeniedException();
     }
 }
Esempio n. 3
0
 /**
  * Creates a new Sample Folder including Folder
  * @param integer $sample_id
  * @return integer
  */
 public function create($sample_id)
 {
     if (is_numeric($sample_id)) {
         $sample = new Sample($sample_id);
         // Folder
         $sample_folder_id = constant("SAMPLE_FOLDER_ID");
         $folder = new Folder($sample_folder_id);
         $path = new Path($folder->get_path());
         $path->add_element($sample_id);
         $name = $sample->get_name() . " (" . $sample->get_formatted_id() . ")";
         if (($folder_id = parent::create($name, $sample_folder_id, $path->get_path_string(), $sample->get_owner_id(), null)) != null) {
             $sample_has_folder_access = new SampleHasFolder_Access(null);
             if ($sample_has_folder_access->create($sample_id, $folder_id) == null) {
                 return null;
             }
             // Virtual Folders (Event)
             $sample_folder_create_event = new SampleFolderCreateEvent($folder_id);
             $event_handler = new EventHandler($sample_folder_create_event);
             if ($event_handler->get_success() == false) {
                 $this->delete();
                 return false;
             } else {
                 return $folder_id;
             }
         } else {
             return null;
         }
     } else {
         return null;
     }
 }
Esempio n. 4
0
 /**
  * @see SampleInterface::get_sub_folder()
  * @param integer $folder_id Folder-ID
  * @param integer $gid 
  * @return string Sub-Folder-Path
  */
 public function get_sub_folder($folder_id, $gid)
 {
     if ($this->sample_id and $this->sample) {
         if (is_numeric($folder_id) and is_numeric($gid)) {
             $sample_folder_id = SampleFolder::get_folder_by_sample_id($this->sample_id);
             if ($folder_id == $sample_folder_id) {
                 $folder = Folder::get_instance($folder_id);
                 $sample_template = new SampleTemplate($this->sample->get_template_id());
                 $attribute_array = $sample_template->get_gid_attributes($gid);
                 if ($attribute_array['folder']) {
                     $folder_name = strtolower(trim($attribute_array['folder']));
                     $folder_name = str_replace(" ", "-", $folder_name);
                     $folder_path = new Path($folder->get_path());
                     $folder_path->add_element($folder_name);
                     return Folder::get_folder_by_path($folder_path->get_path_string());
                 } else {
                     return null;
                 }
             } else {
                 return null;
             }
         } else {
             return null;
         }
     } else {
         return null;
     }
 }
Esempio n. 5
0
 /**
  * Creates a new Project Folder including Folder
  * @param integer $project_id
  * @return integer
  */
 public function create($project_id, $base_folder_id)
 {
     if (is_numeric($project_id)) {
         $project = new Project($project_id);
         // Folder
         if ($base_folder_id == null) {
             $project_folder_id = constant("PROJECT_FOLDER_ID");
         } else {
             $project_folder_id = $base_folder_id;
         }
         $folder = new Folder($project_folder_id);
         $path = new Path($folder->get_path());
         $path->add_element($project_id);
         if (($folder_id = parent::create($project->get_name(), $project_folder_id, $path->get_path_string(), $project->get_owner_id(), null)) != null) {
             $project_has_folder_access = new ProjectHasFolder_Access(null);
             if ($project_has_folder_access->create($project_id, $folder_id) == null) {
                 return null;
             }
             // Virtual Folder
             $project_folder_create_event = new ProjectFolderCreateEvent($folder_id);
             $event_handler = new EventHandler($project_folder_create_event);
             if ($event_handler->get_success() == false) {
                 $this->delete();
                 return false;
             } else {
                 return $folder_id;
             }
         } else {
             return null;
         }
     } else {
         return null;
     }
 }
Esempio n. 6
0
 /**
  * @param integer $group_id
  * @return bool
  */
 public function create($group_id)
 {
     global $transaction;
     if (is_numeric($group_id)) {
         $group = new Group($group_id);
         // Folder
         $group_folder_id = constant("GROUP_FOLDER_ID");
         $folder = new Folder($group_folder_id);
         $path = new Path($folder->get_path());
         $path->add_element($group_id);
         $folder = new Folder(null);
         if (($folder_id = parent::create($group->get_name(), $group_folder_id, $path->get_path_string(), 1, $group_id)) != null) {
             $folder_is_group_folder_access = new FolderIsGroupFolder_Access(null);
             if ($folder_is_group_folder_access->create($group_id, $folder_id) == null) {
                 return false;
             }
             // Virtual Folders (Event)
             $group_folder_create_event = new GroupFolderCreateEvent($folder_id);
             $event_handler = new EventHandler($group_folder_create_event);
             if ($event_handler->get_success() == false) {
                 $this->delete();
                 return false;
             } else {
                 return true;
             }
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
 /**
  * @param integer $organisation_unit_id
  * @return bool
  */
 public function create($organisation_unit_id)
 {
     if (is_numeric($organisation_unit_id)) {
         $organisation_unit = new OrganisationUnit($organisation_unit_id);
         // Folder
         $organisation_unit_folder_id = constant("ORGANISATION_UNIT_FOLDER_ID");
         $folder = new Folder($organisation_unit_folder_id);
         $path = new Path($folder->get_path());
         $path->add_element($organisation_unit_id);
         $folder = new Folder(null);
         if (($folder_id = parent::create($organisation_unit->get_name(), $organisation_unit_folder_id, $path->get_path_string(), $organisation_unit->get_master_owner_id(), null)) != null) {
             $folder_is_organisation_unit_folder_access = new FolderIsOrganisationUnitFolder_Access(null);
             if ($folder_is_organisation_unit_folder_access->create($organisation_unit_id, $folder_id) == null) {
                 return false;
             }
             // Virtual Folders (Event)
             $organisation_unit_folder_create_event = new OrganisationUnitFolderCreateEvent($folder_id);
             $event_handler = new EventHandler($organisation_unit_folder_create_event);
             if ($event_handler->get_success() == false) {
                 $this->delete();
                 return false;
             } else {
                 return true;
             }
         } else {
             $this->delete(true, true);
             return false;
         }
     } else {
         return false;
     }
 }
Esempio n. 8
0
 /**
  * @see FolderInterface::move_folder()
  * @param integer $destination_id
  * @param bool $force_exist_check
  * @return bool
  */
 public function move_folder($destination_id, $force_exist_check)
 {
     global $session, $transaction;
     if ($this->folder_id and $this->folder and is_numeric($destination_id)) {
         $destination_folder = Folder::get_instance($destination_id);
         if ($destination_folder->exist_subfolder_name($this->get_name()) == false or $force_exist_check == true) {
             $transaction_id = $transaction->begin();
             $current_path = new Path($this->get_path());
             $destination_path = new Path($destination_folder->get_path());
             $destination_path->add_element($current_path->get_last_element());
             $new_path = $destination_path->get_path_string();
             // create new folder
             if (mkdir(constant("BASE_DIR") . "/" . $new_path) == false) {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 return false;
             }
             // change database
             if ($this->folder->set_path($new_path) == false) {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 rmdir(constant("BASE_DIR") . "/" . $new_path);
                 return false;
             }
             if ($this->unset_child_of($this->get_parent_folder()) == false) {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 rmdir(constant("BASE_DIR") . "/" . $new_path);
                 return false;
             }
             if ($this->set_as_child_of($destination_folder->get_data_entity_id()) == false) {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 rmdir(constant("BASE_DIR") . "/" . $new_path);
                 return false;
             }
             // subfolder filesystem move
             if (($subfolder_array = $this->get_subfolder_array()) != null) {
                 if (is_array($subfolder_array) and count($subfolder_array) >= 1) {
                     foreach ($subfolder_array as $key => $value) {
                         $folder = Folder::get_instance($value);
                         if ($folder->move_folder($this->folder_id, true) == false) {
                             if ($transaction_id != null) {
                                 $transaction->rollback($transaction_id);
                             }
                             return false;
                         }
                     }
                 }
             }
             // Move Files
             $handle = opendir(constant("BASE_DIR") . "/" . $current_path->get_path_string());
             while (($file_name = readdir($handle)) !== false) {
                 if ($file_name != "." and $file_name != "..") {
                     $current_file = constant("BASE_DIR") . "/" . $current_path->get_path_string() . "/" . $file_name;
                     $destination_file = constant("BASE_DIR") . "/" . $new_path . "/" . $file_name;
                     copy($current_file, $destination_file);
                     unlink($current_file);
                 }
             }
             closedir($handle);
             rmdir(constant("BASE_DIR") . "/" . $current_path->get_path_string());
             // Delete Folder Stack
             $session->delete_value("stack_array");
             if ($transaction_id != null) {
                 $transaction->commit($transaction_id);
             }
             return true;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
 /**
  * Creates a new Project Folder including Folder
  * @param integer $project_id
  * @return integer
  */
 public function create($project_id, $project_status_id)
 {
     if (is_numeric($project_id) and is_numeric($project_status_id)) {
         $project_status = new ProjectStatus($project_status_id);
         $project = new Project($project_id);
         $project_folder_id = ProjectFolder::get_folder_by_project_id($project_id);
         $folder = new Folder($project_folder_id);
         $path = new Path($folder->get_path());
         $path->add_element("status-" . $project_status_id);
         if (($folder_id = parent::create($project_status->get_name(), $project_folder_id, $path->get_path_string(), $project->get_owner_id(), null)) != null) {
             $project_status_has_folder_access = new ProjectStatusHasFolder_Access(null);
             if ($project_status_has_folder_access->create($project_id, $project_status_id, $folder_id) == null) {
                 return null;
             }
             return $folder_id;
         } else {
             return null;
         }
     } else {
         return null;
     }
 }
Esempio n. 10
0
 /**
  * @param integer $user_id
  * @return bool
  */
 public function create($user_id)
 {
     if (is_numeric($user_id)) {
         $user = new User($user_id);
         // Folder
         $user_folder_id = constant("USER_FOLDER_ID");
         $folder = new Folder($user_folder_id);
         $path = new Path($folder->get_path());
         $path->add_element($user_id);
         if (($folder_id = parent::create($user->get_username(), $user_folder_id, $path->get_path_string(), $user_id, null)) != null) {
             $folder_is_user_folder_access = new FolderIsUserFolder_Access(null);
             if ($folder_is_user_folder_access->create($user_id, $folder_id) == null) {
                 return false;
             }
             // _Public
             $public_path = new Path($path->get_path_string());
             $public_path->add_element("_public");
             $public_folder = new Folder(null);
             if ($public_folder->create("_public", $folder_id, $public_path->get_path_string(), $user_id, null) == null) {
                 $this->delete();
                 return false;
             }
             // _Private
             $private_path = new Path($path->get_path_string());
             $private_path->add_element("_private");
             $private_folder = new Folder(null);
             if ($private_folder->create("_private", $folder_id, $private_path->get_path_string(), $user_id, null) == null) {
                 $this->delete();
                 return false;
             }
             // Virtual Folders (Event)
             $user_folder_create_event = new UserFolderCreateEvent($folder_id);
             $event_handler = new EventHandler($user_folder_create_event);
             if ($event_handler->get_success() == false) {
                 $this->delete();
                 return false;
             } else {
                 return true;
             }
         } else {
             return false;
         }
     } else {
         return false;
     }
 }